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

Bagaimana Anda menjumlahkan nilai di dalam objek yang merupakan subdokumen bersarang di mongodb menggunakan node.js?

Dokumen yang akan dikerjakan ada di bawah. Itu adalah objek bersarang:objek (pasangan nilai kunci dengan nilai 100) bersarang di dalam objek ('0') (ini ditulis sebagai string), dan ini bersarang di dalam objek lain ("japanese3"). Nama pengguna digunakan sebagai kueri untuk mendapatkan dokumen yang tepat.

{ japanese3: 
   { '0': 
     {"japanese3a": 100,  "japanese3b": 100,  "japanese3c": 100} 
   } 
}

Tujuannya adalah untuk menjumlahkan nilai angka pada objek yang tersarang paling dalam, sehingga hasil yang diinginkan adalah "300".

Scriptnya adalah:

         .aggregate([
           {$match: {username: username}}, //finds the document by username
           {$set: {"japanese_array":{$objectToArray: "$japanese3.0"}}}, // all fields have the same name now (k, v)
           {$project: {_id:0, total:{$sum: "$japanese_array2.v"}}}// sum up the "v" fields                                     
       ])
        .toArray(function(err, result){
          if (err)
            console.log("Failed");
            console.log(result); 
            res.send({ status: true, msg: result[0].total}); //result shows up as a number, in this case: 300
    });                            
 });



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Eksposur ObjectIds MongoDB

  2. deret waktu dan kerangka agregasi (mongo)

  3. Pengumpulan kunci Mongodb hingga bendera disetel?

  4. C# Mongodb. Temukan item dalam array dan pilih hanya item ini

  5. Hapus catatan menurut id?