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

Bagaimana saya bisa melakukan gabungan bersarang (bergabung dengan 3 atau lebih koleksi) dalam pipa agregasi MongoDB?

Lakukan pencarian bersarang menggunakan pencarian dengan pipeline ,

  • $lookup dengan orders koleksi,
    • let , tentukan variabel customer_id yaitu dari koleksi utama, untuk mengakses variabel referensi ini di dalam pipa menggunakan $$ seperti $$customer_id ,
    • pipeline dapat menambahkan tahapan pipeline sama seperti yang kita lakukan di pipeline level root
    • $expr setiap kali kami mencocokkan bidang internal, itu membutuhkan kondisi kecocokan ekspresi, jadi $$customer_id adalah bidang koleksi induk yang dideklarasikan dalam let dan $customer_id adalah bidang koleksi anak/koleksi saat ini
  • $lookup dengan orderitems koleksi
db.customers.aggregate([
  {
    $lookup: {
      from: "orders",
      let: { customer_id: "$customer_id" },
      pipeline: [
        { $match: { $expr: { $eq: ["$$customer_id", "$customer_id"] } } },
        {
          $lookup: {
            from: "orderitems",
            localField: "order_id",
            foreignField: "order_id",
            as: "items"
          }
        }
      ],
      as: "orders"
    }
  }
])

Taman bermain




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara melakukan banyak gabungan antara dua koleksi di mongodb menggunakan fungsi lambda?

  2. Bagaimana cara menggunakan data pegas mongo @CompoundIndex dengan sub koleksi?

  3. Bidang Nomor MongoDB tidak akan dimasukkan atau diperbarui dengan nomor yang saya masukkan

  4. Bagaimana mengganti nama database mongodb

  5. Basis Data NoSQL Paling Populer yang Didukung oleh ClusterControl