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

Agregasi MongoDB - nilai bidang proyek sebagai bidang

Anda dapat menggabungkan seperti di bawah ini:

  • $group menurut subject dan importance , dapatkan jumlah masing-masing.
  • Lalu datanglah bagian yang sulit, $project , itu akan tumbuh secara linier sehubungan dengan jumlah opsi yang importance lapangan bisa tahan. saat ini tiga - high , low dan medium .
  • $group hasilnya kembali lagi dengan subject dan gunakan $sum operator untuk accumulate menghitung nilai yang berbeda dari bidang urgensi.

contoh kode:

db.t.aggregate([
{$group:{"_id":{"subject":"$subject",
                "importance":"$importance"},
         "count":{$sum:1}}},
{$project:{"_id":0,
           "subject":"$_id.subject",
           "result":{$cond:[
                           {$eq:["$_id.importance","high"]},
                           {"high":"$count"},
                           {$cond:[{$eq:["$_id.importance","low"]},
                                   {"low":"$count"},
                                   {"medium":"$count"}]}]}}},
{$group:{"_id":"$subject",
         "low":{$sum:"$result.low"},
         "medium":{$sum:"$result.medium"},
         "high":{$sum:"$result.high"}}},
])

data uji:

db.t.insert([
{"subject":"history","importance":"high"},
{"subject":"geography","importance":"low"},
{"subject":"history","importance":"low"},
{"subject":"history","importance":"medium"},
{"subject":"geography","importance":"low"},
{"subject":"history","importance":"low"}
])

hasil:

{ "_id" : "geography", "low" : 2, "medium" : 0, "high" : 0 }
{ "_id" : "history", "low" : 2, "medium" : 1, "high" : 1 }



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Populasi luwak dua tingkat menggunakan KeystoneJs

  2. Bagaimana cara mengumpulkan data berdasarkan hari, minggu, bulan dalam minggu, bulan, tahun yang sesuai masing-masing di mongodb

  3. Bagaimana Anda melakukan kueri AND pada array di mongodb?

  4. Mengapa MongoDB Begitu Cepat?

  5. Mongoose dan Skema baru:mengembalikan ReferenceError:Skema tidak ditentukan