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

$proyek dalam agregasi $lookup

Tantangan utamanya adalah Anda ingin semua bidang dari dokumen utama (karena Anda tidak tahu semuanya) ditambah hanya 2 dari daftar.

Ini harus melakukannya:

{
  $project: {
    "_id": 0,
    "document": "$$CURRENT",
    "list._id": "$$CURRENT.list._id",
    "list.name": "$$CURRENT.list.name"
  }
}, {
  $project: {
    "document.list": 0
  }
}, {
  $addFields: {
    "document.list._id": "$$CURRENT.list._id",
    "document.list.name": "$$CURRENT.list.name"
  }
}, {
  $replaceRoot: {
    newRoot: "$document"
  }
}

Ini melewati beberapa tahap tetapi menyelesaikan pekerjaan :). Ini akan mengambil dokumen saat ini dan hanya bidang daftar yang Anda inginkan. Maka itu akan menghapus dari daftar dokumen saat ini. Kemudian itu akan menambah daftar dokumen yang sama (karena itu dengan bidang spesifik yang kita inginkan). Kemudian akan menambahkan bidang tersebut ke dokumen dan terakhir akan mengganti root dengan dokumen itu.

Lihat di sini berfungsi .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. luwak:hanya mengembalikan kunci dari dokumen

  2. MongoDB:Timeout terjadi setelah 30000ms memilih server menggunakan CompositeServerSelector

  3. Meminta Objek di Sub Array Mongoose

  4. Perintah Hitung MongoDB

  5. Ikhtisar MongoDB Atlas:Bagian Satu