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

Bagaimana cara menghitung kemunculan setiap nilai dalam array?

Anda lupa tanda kurung kurawal pada key value dan Anda harus mengakhiri baris itu dengan , bukannya ; .

db.issues.group({
    key: {"comments.username":true},
    initial: {sum:0},
    reduce: function(doc, prev) {prev.sum +=1},
});

PERBARUI

Setelah menyadari comments adalah sebuah array... Anda harus menggunakan aggregate untuk itu agar kamu bisa 'melepas lelah' comments dan kemudian mengelompokkannya:

db.issues.aggregate(
    {$unwind: '$comments'},
    {$group: {_id: '$comments.username', sum: {$sum: 1}}}
);

Untuk contoh dokumen dalam pertanyaan, ini menghasilkan:

{
  "result": [
    {
      "_id": "Brandon Black",
      "sum": 1
    },
    {
      "_id": "Nelson Elhage",
      "sum": 3
    }
  ],
  "ok": 1
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Fitur MongoDB di ClusterControl 1.4

  2. Otentikasi selama koneksi ke instance server MongoDB menggunakan Java

  3. Bagaimana cara menanyakan MongoDB langsung dari Ruby alih-alih menggunakan Mongoid?

  4. Cara menggunakan kembali koneksi MongoDB di Go

  5. Otentikasi MongoDB Atlas gagal di Python