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

Hitung kemunculan dalam dokumen mongodb bersarang dan simpan grup

Anda dapat menggunakan agregasi di bawah ini.

Kelompokkan berdasarkan pertanyaan dan jawaban untuk mendapatkan hitungan kombinasi diikuti oleh kelompok demi pertanyaan untuk mendapatkan jawaban dan hitungannya.

db.getCollection('testAggregate').aggregate([
  {"$group":{
    "_id":{"question":"$question","answer":"$answer"},
    "count":{"$sum":1}
  }},
  {"$group":{
    "_id":"$_id.question",
    "answers":{"$push":{"answer":"$_id.answer","count":"$count"}}
  }}
]);

Anda dapat menggunakan kode di bawah ini untuk mendapatkan format yang Anda inginkan di 3.4.

Ubah $group kunci ke k dan v diikuti oleh $addFields dengan $arrayToObject untuk mengubah array menjadi pasangan nilai kunci bernama.

db.getCollection('testAggregate').aggregate([
  {"$group":{
    "_id":{"question":"$question","answer":"$answer"},
    "count":{"$sum":1}
  }},
  {"$group":{
    "_id":"$_id.question",
    "answers":{"$push":{"k":"$_id.answer","v":"$count"}}
  }},
 {"$addFields":{"answers":{"$arrayToObject":"$answers"}}}
]);



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Menyimpan objek luwak menjadi dua koleksi

  2. MongoDB c# driver:Case Insensitive Bandingkan menggunakan atau berisi pada daftar menggunakan linq

  3. MongoDb setara dengan penulis di Spring Batch?

  4. 5 Cara Mendapatkan Menit dari Sebuah Kencan di MongoDB

  5. kesalahan pymongo:bson.errors.InvalidBSON:codec 'utf8' tidak dapat mendekode byte 0xa1 di posisi 25:byte awal tidak valid