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

Agregat/sub-dokumen proyek sebagai dokumen tingkat atas di mongo

Ketika Anda memiliki banyak, banyak bidang dalam sub-dokumen dan kadang-kadang diperbarui dengan bidang baru, maka proyeksi bukanlah pilihan yang layak. Untungnya, sejak 3.4, MongoDB memiliki operator baru bernama $replaceRoot .

Yang harus Anda lakukan adalah menambahkan tahap baru di akhir saluran Anda.

db.getCollection('sample').aggregate([
    {
        $replaceRoot: {newRoot: "$command"}
    },
    {
        $project: {score: 0 } //exclude score field
    }
])

Ini akan memberi Anda hasil yang diinginkan.

Perhatikan bahwa dalam kasus agregasi (terutama setelah $group stage) dokumen 'perintah' dapat berupa larik dan dapat berisi banyak dokumen. Dalam hal ini Anda perlu $unwind array terlebih dahulu agar dapat menggunakan $replaceRoot .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Temukan Dokumen berdasarkan Referensi Orang Tua Dalam Anak

  2. Menggunakan fungsi JavaScript yang tersimpan dalam pipa Agregasi, MapReduce atau runCommand

  3. Node js POST Permintaan kesalahan Kesalahan [ERR_HTTP_HEADERS_SENT]:Tidak dapat mengatur header setelah dikirim ke klien

  4. Apa perbedaan antara Date.now() dan Date.now di luwak?

  5. Kelompokkan catatan berdasarkan bulan dan hitung - Mongoose, nodeJs, mongoDb