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

MongoDB Hitung jumlah total nilai benar dan salah untuk dokumen yang cocok dengan kueri

kerangka kerja agregasi adalah jawaban Anda:

db.collection.aggregate([
    { "$match": { "pollId": "hr4946-113" } },
    { "$group": {
        "_id": "$vote",
        "count": { "$sum": 1 }
    }}
])

Pada dasarnya $group operator mengumpulkan semua data dengan "kunci", dan "operator pengelompokan" seperti $sum bekerja pada nilai-nilai. Dalam hal ini, cukup tambahkan 1 pada batas untuk menunjukkan hitungan.

Memberi Anda:

{ "_id": true, "count": 1 }, 

Anda bisa konyol dan memperluasnya menjadi satu respons dokumen menggunakan $cond operator untuk mengevaluasi nilai bidang secara kondisional:

db.collection.aggregate([
    { "$match": { "pollId": "hr4946-113" } },
    { "$group": {
        "_id": "$vote",
        "count": { "$sum": 1 }
    }},
    { "$group": {
        "_id": null,
        "yesCount": {
            "$sum": {
                "$cond": [ "_id", 1, 0 ]
            }
        },
        "noCount": {
            "$sum": {
                "$cond": [ "_id", 0, 1 ]
            }
        }
    }},
    { "$project": { "_id": 0 } }
])

Dan hasilnya:

{ "yesCount": 1, "noCount": 0 }



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara memproses permintaan penyisipan di Data Musim Semi sebelum menambahkannya ke MongoDB?

  2. Memperbarui array bersarang di mongoDB melalui mongo Shell

  3. MongoDB - Jatuhkan Koleksi

  4. MongoDB GPG - Tanda Tangan Tidak Valid

  5. Cara memposting data MongoDB ke array bersarang menggunakan NODE.js dan Express