MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Beberapa Hitungan dengan satu permintaan di mongodb

Anda dapat mencoba di bawah $facet agregasi

$count agregasi akan selalu memberi Anda hitungan hanya untuk satu pencocokan ($match ) kondisi. Jadi, Anda perlu membagi lebih lanjut setiap hitungan menjadi beberapa bagian dan itulah yang $facet menyediakan dengan memproses beberapa saluran agregasi dalam satu tahap pada kumpulan dokumen input yang sama.

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] }
  }}
])

Keluaran

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Setel Batas Waktu Mongo di Boot Musim Semi

  2. Periksa apakah database mongodb ada?

  3. Cara Mengimpor format file .bson di mongodb

  4. Menyebarkan Replika MongoDB di Seluruh Wilayah di AWS

  5. Bagaimana saya bisa menelusuri atau menanyakan data MongoDB langsung?