Latest web development tutorials
×

MongoDB курс

MongoDB курс NoSQL Краткое введение MongoDB Краткое введение Window устанавливать MongoDB Linux устанавливать MongoDB MongoDB Интерпретация Концепции MongoDB подключение MongoDB Создание базы данных MongoDB Удалить базу данных MongoDB Вставить документ MongoDB Обновление документации MongoDB Удаление документов MongoDB документ Запрос MongoDB Условный оператор MongoDB $type операторы MongoDB Limit & Skip MongoDB последовательность MongoDB индекс MongoDB агрегирование MongoDB копия MongoDB Ломтики MongoDB Резервное копирование и восстановление MongoDB монитор MongoDB Java MongoDB PHP распространение MongoDB PHP MongoDB PHP7

MongoDB Расширенный учебник

MongoDB отношения MongoDB ссылки на базы данных MongoDB Индекс покрытия запроса MongoDB анализ запросов MongoDB атомарные операции MongoDB Расширенный индексации MongoDB ограничения индекса MongoDB ObjectId MongoDB Map Reduce MongoDB Полнотекстовый поиск MongoDB Регулярные выражения MongoDB Инструменты управления MongoDB GridFS MongoDB Фиксированный набор MongoDB Автоматический рост

полимеризация MongoDB

MongoDB полимеризуется (складочном) в основном для обработки данных (например, статистические средние, суммы и т.д.), и возвращает результат расчетных данных. Несколько подобный подсчет SQL утверждение (*).


Совокупный метод ()

Способ полимеризации MongoDB использует агрегат ().

грамматика

Метод Базовый синтаксис агрегатный () выглядит следующим образом:

>db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)

примеров

Сбор данных выглядит следующим образом:

{
   _id: ObjectId(7df78ad8902c)
   title: 'MongoDB Overview', 
   description: 'MongoDB is no sql database',
   by_user: 'w3cschool.cc',
   url: 'http://www.w3cschool.cc',
   tags: ['mongodb', 'database', 'NoSQL'],
   likes: 100
},
{
   _id: ObjectId(7df78ad8902d)
   title: 'NoSQL Overview', 
   description: 'No sql database is very fast',
   by_user: 'w3cschool.cc',
   url: 'http://www.w3cschool.cc',
   tags: ['mongodb', 'database', 'NoSQL'],
   likes: 10
},
{
   _id: ObjectId(7df78ad8902e)
   title: 'Neo4j Overview', 
   description: 'Neo4j is no sql database',
   by_user: 'Neo4j',
   url: 'http://www.neo4j.com',
   tags: ['neo4j', 'database', 'NoSQL'],
   likes: 750
},

Теперь мы установили выше рассчитывается для каждого из числа статей, написанных авторами, с использованием совокупности () вычисляется следующим образом:

> db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])
{
   "result" : [
      {
         "_id" : "w3cschool.cc",
         "num_tutorial" : 2
      },
      {
         "_id" : "Neo4j",
         "num_tutorial" : 1
      }
   ],
   "ok" : 1
}
>

Подобные примеры выше SQL заявление: выберите by_user, граф (*) от Mycol группы по by_user

В приведенном выше примере, мы by_user поле по полю, чтобы сгруппировать данные и вычисляет сумму того же значения by_user поля.

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

выражение описание примеров
$ Сумма Вычислить сумму. db.mycol.aggregate ([{$ группа: {_id: "$ by_user", num_tutorial: {$ сумма: "$ любит"}}}])
$ Avg Расчет среднего db.mycol.aggregate ([{$ группа: {_id: "$ by_user", num_tutorial: {$ СРЕДНЕМ: "$ любит"}}}])
$ Мин Возвращает коллекцию всех документов соответствуют стоит минимум. db.mycol.aggregate ([{$ группа: {_id: "$ by_user", num_tutorial: {$ мин: "$ любит"}}}])
$ Макс Возвращает коллекцию всех документов, соответствующих максимальному стоимости. db.mycol.aggregate ([{$ группа: {_id: "$ by_user", num_tutorial: {$ макс: "$ любит"}}}])
$ Нажмите В итоговом документе, чтобы вставить значение в массив. db.mycol.aggregate ([{$ группа: {_id: "$ by_user", URL: {$ толчок: "$ URL"}}}])
$ AddToSet В итоговом документе, чтобы вставить значение в массив, но не создает копию. db.mycol.aggregate ([{$ группа: {_id: "$ by_user", URL: {$ addToSet: "$ URL"}}}])
$ First Будучи первые данные документа в соответствии с документами своего рода ресурсов. db.mycol.aggregate ([{$ группа: {_id: "$ by_user", first_url: {$ первый: "$ URL"}}}])
$ Последняя Получает последние данные документа в соответствии с документами своего рода ресурсов db.mycol.aggregate ([{$ группа: {_id: "$ by_user", last_url: {$ Последнее: "$ URL"}}}])

Концепция трубопровода

Трубы в Unix и Linux в целом используется для вывода текущей команды в качестве параметра к следующей команде.

MongoDB MongoDB документ полимерная труба в трубе после того, обрабатываемого результата к следующей обработке трубопровода. Эксплуатация трубопровода может быть повторен.

Выражение: обработка входных и выходных документов. Выражения являются лицами без гражданства, могут быть использованы только для расчета текущего трубопровода совокупных документов, вы не можете иметь дело с другими документами.

Здесь мы вводим структуру агрегации обычно используется в нескольких операциях:

  • $ Проект: Изменение структуры исходного документа. Может использоваться для переименования, добавлять или удалять поля, он также может быть использован для создания вложенных вычислений и документации.
  • $ Match: используется для фильтрации данных, только вывод квалифицированных документов. $ Match с помощью стандартных операторов запросов MongoDB.
  • $ Limit: ограничить количество документов трубопроводов полимеризации MongoDB возвратили.
  • $ Пропустить: Пропустить указанное количество документов в трубопроводе полимеризации, и возвращает оставшуюся часть документа.
  • $ Разматывает: документ разделен на массиве поля типа в несколько, каждый массив, содержащий значение.
  • $ Группа: сбор документов, группировка может быть использована для статистических результатов.
  • $ Сортировка: выходной входной документ после размещения заказа.
  • $ GeoNear: Заказал вывод документа, близкий к географическому положению.

Примеры оператора трубопровода

1, примеры проектов $

db.article.aggregate(
    { $project : {
        title : 1 ,
        author : 1 ,
    }}
 );

В этом случае результаты будут только там _id, tilte и автор трех полей, _id по умолчанию поле должно быть включено, если заказ не содержит _ID, если это может быть:

db.article.aggregate(
    { $project : {
        _id : 0 ,
        title : 1 ,
        author : 1
    }});

2. $ примеры совпадения

db.articles.aggregate( [
                        { $match : { score : { $gt : 70, $lte : 90 } } },
                        { $group: { _id: null, count: { $sum: 1 } } }
                       ] );

$ Match используется для получения балла больше, чем 70 меньше или равно 90 записей, то совпадающие записи к следующему этапу оператора трубопровода $ группы для обработки.

3. $ пропустить экземпляр

db.article.aggregate(
    { $skip : 5 });

После того, как оператор обработки трубопровода $ скипового, первые пять документов "фильтруются" из.