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

Nhiều số lượng với một truy vấn duy nhất trong mongodb

Bạn có thể thử bên dưới $facet tổng hợp

$count tổng hợp sẽ luôn cung cấp cho bạn số lượng chỉ cho một kết hợp duy nhất ( $match ) điều kiện. Vì vậy, bạn cần chia nhỏ hơn mỗi số đếm của mình thành nhiều phần và đó là điều mà $facet cung cấp bởi các quy trình 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.

db.collection.aggregate([
  { "$facet": {
    "Total": [
      { "$match" : { "ReleaseDate": { "$exists": true }}},
      { "$count": "Total" },
    ],
    "Released": [
      { "$match" : {"ReleaseDate": { "$exists": true, "$nin": [""] }}},
      { "$count": "Released" }
    ],
    "Unreleased": [
      { "$match" : {"ReleaseDate": { "$exists": true, "$in": [""] }}},
      { "$count": "Unreleased" }
    ]
  }},
  { "$project": {
    "Total": { "$arrayElemAt": ["$Total.Total", 0] },
    "Released": { "$arrayElemAt": ["$Released.Released", 0] },
    "Unreleased": { "$arrayElemAt": ["$Unreleased.Unreleased", 0] }
  }}
])

Đầu ra

[{
    "Total": 3,
    "Released": 2,
    "Unreleased": 1
}]


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $ dateFromString Format Specifier

  2. Sử dụng findOne trong mongodb để lấy phần tử có id tối đa

  3. Những điều cần biết khi bắt đầu làm việc với MongoDB trong sản xuất - Mười lời khuyên

  4. Cách thực hiện truy vấn với cài đặt múi giờ trong Mongodb

  5. tìm id của subocument mới nhất được chèn vào mongoose