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

Perlu menjumlahkan dari nilai objek array di mongodb

Ini tidak berfungsi dengan benar karena menggabungkan semua dokumen dalam koleksi; Anda mengelompokkan pada "_id": "tempId" , Anda hanya perlu mereferensikan kunci yang benar dengan menambahkan $ sebagai:

db.getCollection('myCollection').aggregate([
    { "$group": {
        "_id": "$tempId",
        "totalValue": { 
            "$sum": { "$sum": "$messages.data.value" } 
        }
    } }
])

yang pada dasarnya adalah versi pipa satu tahap dari operasi agregat dengan bidang tambahan yang menampung ekspresi jumlah sebelum pipa grup kemudian memanggil bidang itu sebagai $sum operator dalam grup.

Di atas berfungsi sejak $sum dari MongoDB 3.2+ tersedia di $project dan $group tahapan dan saat digunakan dalam $project tahap, $sum mengembalikan jumlah daftar ekspresi. Ekspresi "$messages.data.value" mengembalikan daftar angka [120, 1200] yang kemudian digunakan sebagai $sum ekspresi:

db.getCollection('myCollection').aggregate([
    { "$project": {
        "values": { "$sum": "$messages.data.value" },
        "tempId": 1,
    } },
    { "$group": {
        "_id": "$tempId",
        "totalValue": { "$sum": "$values" }
    } }
])


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana saya bisa menggabungkan beberapa koleksi menjadi satu koleksi menggunakan $lookup mongodb atau nodejs mongodb?

  2. MongoDB memproyeksikan dokumen dengan jumlah lebih dari 2

  3. MongoDB hapus Banyak ()

  4. Konversi DBObject ke POJO menggunakan MongoDB Java Driver

  5. Spring Data MongoDB cara menetapkan waktu kedaluwarsa secara terprogram