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

Bagaimana cara menggabungkan array pencarian bersarang di luwak?

  • $lookup dengan user koleksi
  • $unwind dekonstruksi id_user susunan
  • $lookup dengan language pengumpulan dan pengembalian dalam language lapangan
  • $map untuk mengulang tampilan id_user.language susunan
  • $reduce untuk mengulang loop language array dikembalikan dari koleksi, periksa kondisi jika language_id cocokkan lalu kembalikan name
db.cvsubmit.aggregate([
  {
    $lookup: {
      from: "user",
      localField: "id_user",
      foreignField: "_id",
      as: "id_user"
    }
  },
  { $unwind: "$id_user" },
  {
    $lookup: {
      from: "language",
      localField: "id_user.language.language_id",
      foreignField: "_id",
      as: "languages"
    }
  },
  {
    $addFields: {
      languages: "$$REMOVE",
      "id_user.language": {
        $map: {
          input: "$id_user.language",
          as: "l",
          in: {
            _id: "$$l._id",
            level: "$$l.level",
            name: {
              $reduce: {
                input: "$languages",
                initialValue: "",
                in: {
                  $cond: [
                    { $eq: ["$$this._id", "$$l.language_id"] },
                    "$$this.name",
                    "$$value"
                  ]
                }
              }
            }
          }
        }
      }
    }
  }
])

Taman bermain




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Menambahkan array BSON ke BsonDocument di MongoDB

  2. Cara paling efisien untuk mengubah nilai bidang string ke substringnya

  3. Bagaimana menghubungkan ke mongoDB Atlas menggunakan luwak

  4. Bagaimana menerapkan dokumen tersemat unik di mongoid

  5. MongoDB - Lepaskan array menggunakan agregasi dan hapus duplikat