MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

MongoDB Aggregation:Làm thế nào để có được tổng số bản ghi?

Kể từ v.3.4 (tôi nghĩ) MongoDB hiện đã có một nhà điều hành đường ống tổng hợp mới có tên là 'facet' theo cách nói của riêng họ:

Xử lý nhiều đường ống tổng hợp trong một giai đoạn trên cùng một bộ tài liệu đầu vào. Mỗi đường ống con có trường riêng của nó trong tài liệu đầu ra, nơi kết quả của nó được lưu trữ dưới dạng một mảng tài liệu.

Trong trường hợp cụ thể này, điều này có nghĩa là người ta có thể làm điều gì đó như sau:

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

Kết quả sẽ là (với tổng số 100 kết quả cũ):

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB có hỗ trợ các kiểu dấu phẩy động không?

  2. Nhóm Mongo và đẩy:đẩy tất cả các lĩnh vực

  3. Padding trong SQL

  4. Cập nhật nhiều tài liệu theo bộ id. Mongoose

  5. Mongoose - tìm các tài liệu phụ theo tiêu chí