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

Penghitungan agregasi objek bersarang MongoDB

Anda perlu memproses $unwind saat bekerja dengan array, dan Anda perlu melakukan ini tiga kali:

 db.collection.aggregate([

     // Un-wind the array's to access filtering 
     { "$unwind": "$studies" },
     { "$unwind": "$studies.samples" },
     { "$unwind": "$studies.samples.formdata" },

     // Group results to obtain the matched count per key
     { "$group": {
         "_id": "$studies.samples.formdata.GT",
         "count": { "$sum": 1 }
     }}
 ])

Idealnya Anda ingin memfilter masukan Anda. Mungkin lakukan ini dengan $match sebelum dan sesudah $unwind diproses dan menggunakan $regex untuk mencocokkan dokumen di mana data pada titik dimulai dengan "1".

 db.collection.aggregate([

     // Match first to exclude documents where this is not present in any array member
     { "$match": { "studies.samples.formdata.GT": /^1/ } },

     // Un-wind the array's to access filtering 
     { "$unwind": "$studies" },
     { "$unwind": "$studies.samples" },
     { "$unwind": "$studies.samples.formdata" },

     // Match to filter
     { "$match": { "studies.samples.formdata.GT": /^1/ } },

     // Group results to obtain the matched count per key
     { "$group": {
         "_id": {
              "_id": "$_id",
              "key": "$studies.samples.formdata.GT"
         },
         "count": { "$sum": 1 }
     }}
 ])

Perhatikan bahwa dalam semua kasus, entri awalan "dollar $" adalah "variabel" yang mengacu pada properti dokumen. Ini adalah "nilai" untuk menggunakan input di sisi kanan. "Kunci" sisi kiri harus ditentukan sebagai kunci string biasa. Tidak ada variabel yang dapat digunakan untuk menamai kunci.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Hitung skor dari bidang yang ada dengan kondisi

  2. MongoDB daftar database yang tersedia di java

  3. data pegas - Mongodb - Metode findBy untuk objek bersarang

  4. kueri dengan luwak

  5. Python + MongoDB - Iterasi kursor terlalu lambat