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

Mongodb Mencoba mendapatkan bidang yang dipilih untuk dikembalikan dari agregat

Secara umum di sini, $project bergantung pada "jalur absolut" ke properti bidang dalam dokumen di sisi "kanan". Pintasan seperti 1 hanya untuk di mana elemen itu sebenarnya adalah tingkat atas dokumen.

Anda juga harus dapat mempertahankan bidang saat Anda $group , jadi di sinilah Anda menggunakan berbagai operator pengelompokan seperti $first dan $addToSet atau $push untuk menyimpan informasi yang Anda ambil dari larik dalam. Dan Anda harus $unwind dua kali di sini juga karena Anda menggabungkan "jenis" di seluruh dokumen, dan Anda tidak hanya menginginkan $first dalam hal ini.

OrderModel.aggregate([
    { "$unwind": "$products" },
    { "$unwind": "$products.types" },
    { "$group": {
        "_id": "$products.name",
        "active": { "$first": "$products.active" },
        "types": { "$addToSet": "$products.types" },
        "quantity": { "$sum": 1 }
    }},
    { "$project": {
        "_id": 0,
        "name": "$_id",
        "active": 1,
        "types": 1,
        "quantity": 1
    }}
],function(err,results) {

});



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Android Studio:menghubungkan ke server MongoDB dengan Mongo Java Driver

  2. Array kueri MongoDb dengan nilai nol

  3. Siapkan konverter khusus di Spring Data Mongo

  4. Kueri Mongo untuk mengurutkan berdasarkan jumlah yang berbeda

  5. MongoDB $bulan