MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB Aggregation:Как да получите общия брой записи?

От v.3.4 (мисля) MongoDB вече има нов оператор на конвейер за агрегиране, наречен „facet“, който по собствените им думи:

Обработва множество конвейери за агрегиране в рамките на един етап върху същия набор от входни документи. Всеки подконвейер има свое собствено поле в изходния документ, където резултатите му се съхраняват като масив от документи.

В този конкретен случай това означава, че човек може да направи нещо подобно:

$result = $collection->aggregate([
  { ...execute queries, group, sort... },
  { ...execute queries, group, sort... },
  { ...execute queries, group, sort... },
  {
    $facet: {
      paginatedResults: [{ $skip: skipPage }, { $limit: perPage }],
      totalCount: [
        {
          $count: 'count'
        }
      ]
    }
  }
]);

Резултатът ще бъде (с за пример 100 общи резултати):

[
  {
    "paginatedResults":[{...},{...},{...}, ...],
    "totalCount":[{"count":100}]
  }
]


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB заявки с нулева стойност

  2. Как да създадете DB за MongoDB контейнер при стартиране?

  3. Изброяване на всички колекции в база данни mongo в рамките на скрипт на nodejs

  4. Комбинирайте две заявки ИЛИ с И в Mongoose

  5. Кога трябва да използвам NoSQL база данни вместо релационна база данни? Добре ли е да използвате и двете на един и същи сайт?