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

Cara menggabungkan nilai semua mata pelajaran di mongoDB

Anda dapat menggunakan agregasi di bawah ini:

db.col.aggregate([
    {
        $unwind: "$marks"
    },
    {
        $project: {
            _id: 1,
            name: 1,
            marks: {
                $objectToArray: "$marks"
            }
        }
    },
    {
        $project: {
            _id :1,
            name: 1,
            total_marks: {
                $reduce: {
                    input: "$marks",
                    initialValue: 0,
                    in: { $add : ["$$value", "$$this.v"] }
                }
            }
        }
    },
    {
        $group: {
            _id: "$_id",
            name: { $first: "$name" },
            total_marks: { $sum: "$total_marks" }
        }
    }
])

Karena tanda Anda disimpan sebagai objek, Anda harus menggunakan $objectToArray untuk mendapatkan berbagai mata pelajaran. Kemudian Anda dapat menggunakan $reduce menjumlahkan semua mata pelajaran untuk satu siswa.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara mengimpor MongoDB menggunakan impor gaya es6?

  2. Cara menggunakan variabel dengan MongoDB $lookup

  3. mongodb, pymongo, agregat memberikan output aneh (sesuatu tentang kursor)

  4. Tidak dapat terhubung ke MongoDB Atlas menggunakan Mongoose dengan koneksi string

  5. MongoDB $substrBytes