Рассмотрим два полезных метода курсора: toArray и forEach, часто используемых при работе с MongoDB через драйвер.
Метод toArray
Метод toArray итерирует весь курсор и возвращает массив объектов. Каждый объект в массиве представляет один документ.
Пример использования:
cursor.toArray()
Результат – массив, содержащий все документы, соответствующие запросу.
Метод forEach
Метод forEach также итерирует курсор, но позволяет выполнять операции с каждым документом, принимая функцию в качестве аргумента. Внутри этой функции указываются действия для каждого документа.
Оба метода (toArray и forEach) исчерпывают курсор. Обработка больших курсоров (например, содержащих тысячи документов) может занимать значительное время.
Примеры использования forEach
Использование функции printjson
Функция printjson выводит каждый документ в формате JSON.
cursor.forEach(printjson)
Пользовательская функция
Пример пользовательской функции, выводящей строку с индексом каждого документа:
cursor.forEach(doc => {
print(`Индекс документа: ${doc.index}`)
});
Здесь используется стрелочная функция. Переменная doc представляет каждый документ, индекс берется из поля index. Результат – список строк вида «Индекс документа: 1», «Индекс документа: 2» и т.д.
Методы toArray и forEach – гибкие инструменты для работы с результатами запросов в MongoDB. toArray удобен для получения всех документов в виде массива, а forEach позволяет обрабатывать каждый документ индивидуально, используя возможности JavaScript. Выбор метода зависит от задачи и размера данных.