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

Bidang Asing dari $lookup bisa menjadi bidang dokumen bersarang?

Tidak ada operator posisi untuk $lookup tetapi Anda dapat menggunakan pipeline khusus di MongoDB 3.6 untuk mendefinisikan custom join kondisi :

db.history.aggregate([
    {
        $lookup: {
            from: "childsgroup",
            let: { child_id: "$child_id" },
            pipeline: [
                { $match: { $expr: { $in: [ "$$child_id", "$childs.id" ] } } },
                { $unwind: "$childs" },
                { $match: { $expr: { $eq: [ "$childs.id", "$$child_id" ] } } },
                { $replaceRoot: { newRoot: "$childs" } }
            ],
            as: "childInfo"
        }
    }
])

$match pertama ditambahkan untuk meningkatkan kinerja:kami hanya ingin menemukan dokumen tersebut dari childsgroup yang berisi child_id . yang cocok dan kemudian kita dapat mencocokkan subdokumen setelah $unwind panggung.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Membandingkan dua bidang koleksi mongo menggunakan driver c# di mono

  2. Kueri MongoDB, urutkan lalu ambil dokumen ke-n untuk grup

  3. Kembalikan berbagai dokumen di sekitar ID di MongoDB

  4. Luwak Mengisi basis di bidang lain Ref dinamis

  5. Menjalankan JS di MongoDB saat memasukkan dari PHP