кодесурса
«MongoDB

MongoDB: метод db.collection.aggregate ()

script1adsense2code
script1adsense3code

db.collection.aggregate

Метод db.collection.aggregate () используется для вычисления агрегированных значений для данных в коллекции.

Синтаксис:

 db.collection.aggregate (конвейер, опции)

Параметры:

название Описание Необходимые /
Необязательный
Тип
трубопровод Последовательность операций или этапов агрегирования данных.
Метод по-прежнему может принимать этапы конвейера как отдельные аргументы, а не как элементы в массиве; однако, если вы не укажете конвейер как массив, вы не сможете указать параметр options.
необходимые массив
опции Дополнительные параметры, которые aggregate () передает в команду aggregate. Необязательный документ

Операторы конвейера агрегации следующие:

Этапы агрегации трубопроводов

название Описание
$ проект Функция $ project в MongoDB передает документы только с указанными полями на следующую стадию в конвейере. Это могут быть существующие поля из входных документов или вновь вычисленные поля.
$ матч Оператор MongoDB $ match фильтрует документы, чтобы передать только те документы, которые соответствуют указанным условиям, на следующую стадию конвейера.
$ красноломкий Оператор $ redact может измениться и дает новую форму каждого документа в потоке, ограничивая содержимое каждого документа на основе информации, хранящейся в самих документах.
$ предел Передает первые n документов без изменений в конвейер, где n - указанное ограничение. Для каждого входного документа выводится либо один документ (для первых n документов), либо ноль документов (после первых n документов).
$ пропустить Пропускает первые n документов, где n - указанный номер пропуска, и передает оставшиеся документы без изменений в конвейер. Для каждого входного документа выводится либо ноль документов (для первых n документов), либо один документ (если после первых n документов).
$ размотки Оператор этапов раскрутки MongoDB $ используется для деконструкции поля массива из входных документов для вывода документа для каждого элемента. Каждый выходной документ является входным документом, в котором значение поля массива заменяется элементом.
$ группа Оператор групповых этапов MongoDB $ группирует документы по некоторому указанному выражению и группирует документ для каждой отдельной группировки. Поле _id в выходных документах содержит отдельную группу по ключу. Выходные документы также могут содержать вычисляемые поля, которые содержат значения некоторых выражений аккумулятора, сгруппированных по полю _id в $ group. Этот оператор не заказывает свои выходные документы.
$ сортировать Переупорядочивает поток документов по указанному ключу сортировки. Меняется только порядок; документы остаются без изменений. Для каждого входного документа выводится один документ.
$ geoNear Возвращает упорядоченный поток документов на основе близости к геопространственной точке. Включает в себя функциональность $ match, $ sort и $ limit для геопространственных данных. Выходные документы включают в себя дополнительное поле расстояния и могут включать поле идентификатора местоположения.
$ из MongoDB $ out записывает результирующий документ конвейера агрегации в указанную коллекцию. Оператор $ out должен быть последним этапом в конвейере. Оператор $ out позволяет структуре агрегации возвращать наборы результатов любого размера.

Документ параметров может содержать следующие поля и значения:

поле Тип Описание
объяснять логический Необязательный. Определяет, чтобы вернуть информацию об обработке конвейера.
allowDiskUse логический Необязательный. Позволяет записывать во временные файлы. Если задано значение true, операции агрегирования могут записывать данные в подкаталог _tmp в каталоге dbPath.
курсор документ Необязательный. Определяет начальный размер пакета для курсора. Значением поля курсора является документ с полем batchSize.

Пример: MongoDB: метод db.collection.aggregate ()

Следующий запрос MongoDB начинает сопоставление в коллекции ресторанов для документов с районом, равным «Бруклин», и группирует соответствующие документы по полю кухни и вычисляет количество раз, когда каждая группа появляется.


db.restaurants.aggregate(
   [
{ $match: { "borough": "Brooklyn"} },
     { $group: { "_id": "$cuisine", "No_of_Times": { $sum: 1 } } }
   ]
);

Образец документа в коллекции ресторанов:


{
  "address": {
     "building": "1007",
     "coord": [ -73.856077, 40.848447 ],
     "street": "Morris Park Ave",
     "zipcode": "10462"
  },
  "borough": "Bronx",
  "cuisine": "Bakery",
  "grades": [
     { "date": { "$date": 1393804800000 }, "grade": "A", "score": 2 },
     { "date": { "$date": 1378857600000 }, "grade": "A", "score": 6 },
     { "date": { "$date": 1358985600000 }, "grade": "A", "score": 10 },
     { "date": { "$date": 1322006400000 }, "grade": "A", "score": 9 },
     { "date": { "$date": 1299715200000 }, "grade": "B", "score": 14 }
  ],
  "name": "Morris Park Bake Shop",
  "restaurant_id": "30075445"
}
.....

Выход:

 {"_id": "Фрукты / Овощи", "No_of_Times": 2}
{"_id": "Chilean", "No_of_Times": 1}
{"_id": "португальский", "No_of_Times": 1}
{"_id": "Деликатесы", "No_of_Times": 46}
{"_id": "Восточноевропейский", "No_of_Times": 27}
{"_id": "Скандинавский", "No_of_Times": 1}
{"_id": "Creole / Cajun", "No_of_Times": 1}
{"_id": "Афганец", "No_of_Times": 1}
{"_id": "Китайский / кубинский", "No_of_Times": 5}
{"_id": "Китайский / Японский", "No_of_Times": 13}
{"_id": "Орехи / Кондитерская", "No_of_Times": 1}
{"_id": "Эфиопский", "No_of_Times": 4}
{"_id": "Creole", "No_of_Times": 17}
{"_id": "German", "No_of_Times": 6}
{"_id": "Перуанский", "No_of_Times": 9}
{"_id": "Стейк", "No_of_Times": 7}
{"_id": "Czech", "No_of_Times": 2}
{"_id": "Other", "No_of_Times": 272}
{"_id": "Нет в списке / не применимо", "No_of_Times": 6}
{"_id": "Пакистан", "No_of_Times": 10}

Получить данные о ресторанах здесь

Предыдущая: Введение в методы оболочки Mongodb
Далее: метод db.collection.count ()

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code