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

Beberapa operasi grup menggunakan kerangka agregasi Mongo

Penting untuk dipahami bahwa operasi dalam argumen ke agregat() membentuk pipa . Ini berarti bahwa input ke setiap elemen pipeline adalah aliran dokumen yang dihasilkan oleh elemen sebelumnya dalam pipeline.

Dalam contoh Anda, kueri pertama Anda membuat alur dokumen yang terlihat seperti ini:

{
    "_id" : 2,
    "avg_score" : 5.5
},
{
    "_id" : 1,
    "avg_score" : 4
}

Ini berarti bahwa elemen kedua dari pipline melihat serangkaian dokumen di mana satu-satunya kunci adalah "_id" dan "avg_score". Kunci "category_id" dan "skor" tidak ada lagi dalam aliran dokumen ini.

Jika Anda ingin mengagregasi lebih lanjut pada aliran ini, Anda harus mengagregasi menggunakan kunci yang terlihat pada tahap ini dalam alur. Karena Anda ingin membuat rata-rata rata-rata, Anda perlu memasukkan satu nilai konstanta untuk bidang _id, sehingga semua dokumen masukan dikelompokkan menjadi satu hasil.

Kode berikut menghasilkan hasil yang benar:

db.questions.aggregate(
    { $group : {
        _id : "$category_id",
        avg_score : { $avg : "$score" },
        }
    },
    { $group : {
        _id : "all",
        avg_score : { $avg : "$avg_score" },
        }
    }
);

Saat dijalankan, ini menghasilkan output berikut:

 {
    "result" : [
        {
        "_id" : "all",
        "avg_score" : 4.75
        }
    ],
    "ok" : 1
 }



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Menanyakan dengan luwak dan kurma

  2. Bagaimana cara mengekspor koleksi ke CSV di MongoDB?

  3. Node js batas populasi luwak

  4. Bagaimana menemukan kueri yang tidak menggunakan indeks atau lambat di mongodb

  5. indeks jarang dan nilai nol di mongo