MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

नेवला में नेस्टेड लुकअप सरणी को कैसे एकत्रित करें?

  • $lookup user . के साथ संग्रह
  • $unwind deconstruct id_user सरणी
  • $lookup language . के साथ संग्रह और वापसी languages . में फ़ील्ड
  • $map id_user.language . के रूप को पुनरावृत्त करने के लिए सरणी
  • $reduce languages . के लूप को पुनरावृत्त करने के लिए संग्रह से लौटा सरणी, अगर language_id . की स्थिति की जाँच करें मैच फिर name return लौटाएं
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"
                  ]
                }
              }
            }
          }
        }
      }
    }
  }
])

खेल का मैदान




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. एकाधिक आईपी पते के साथ mongod.conf bind_ip कैसे सेट करें

  2. MongoDB लोड के तहत धीमा प्रदर्शन कर रहा है

  3. नेवला एसएसएल, कनेक्शन स्वीकार नहीं किया गया

  4. आप कैसे बता सकते हैं कि कोई संग्रह छाया हुआ है या नहीं?

  5. C# ड्राइवर से db.currentOp () कैसे प्राप्त करें - mongodb