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

MongoDB - kunci komposit grup dengan bidang bersarang

Anda harus terlebih dahulu menerapkan $unwind operator pada semua larik sehingga Anda dapat melakukan perhitungan agregasi dengan $group operator kemudian dalam tahap perpipaan. Pada akhirnya Anda akan berakhir dengan pipa agregasi seperti ini:

db.testing.aggregate([
    { "$unwind": "$Event_types" },
    { "$unwind": "$Event_types.events" },
    { "$unwind": "$Event_types.events.by" },
    { "$unwind": "$Event_types.events.by.countArray" },
    {
        "$group": {
            "_id": {
                "type": "$Event_types.type",
                "name": "$Event_types.events.eventName",
                "siteName": "$Event_types.events.by.siteName"
            },
            "total": { 
                "$sum": "$Event_types.events.by.countArray.value"
            }
        }
    },
    {
        "$project": {
            "_id": 0,
            "type": "$_id.type",
            "name": "$_id.name",
            "siteName": "$_id.siteName",
            "total": 1
        }
    }
]);

Keluaran

/* 1 */
{
    "result" : [ 
        {
            "total" : 90,
            "type" : "Party",
            "name" : "After Party",
            "siteName" : "PostParty"
        }, 
        {
            "total" : 40,
            "type" : "Party",
            "name" : "After Party",
            "siteName" : "club8"
        }
    ],
    "ok" : 1
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana saya bisa mengurutkan hasil kueri MongoDB berdasarkan ukuran array dalam?

  2. Memasukkan CSV Besar ke MongoDB dengan Node.js dan async.queue

  3. Bagaimana cara mendeteksi apakah serializer mongodb sudah terdaftar?

  4. MongoDB/PyMongo:Menanyakan beberapa kriteria - hasil yang tidak terduga

  5. $sum dari grup dokumen dan subdocuments oleh $author (MongoDB)