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

नेवला में स्थिति के साथ लुकअप

आप $ पाइपलाइन के साथ लुकअप MongoDB v3.6 से शुरू होकर ,

  • स्थानीय फ़ील्ड पास करने दें _id model_id . के रूप में चर, आप $$ संदर्भ का उपयोग करके लुकअप पाइपलाइन के अंदर फ़ील्ड का उपयोग कर सकते हैं,
  • पाइपलाइन डालने के लिए $match चरण और अपनी आवश्यक शर्तों से मेल खाते हैं और user_id हालत
  {
    $lookup: {
      from: "bookmarks",
      let: { model_id: "$_id" },
      pipeline: [
        {
          $match: {
            $expr: { $eq: ["$$model_id", "$model_id"] },
            user_id: objectId(req.user._id)
          }
        }
      ],
      as: "bookmarks"
    }
  }

MongoDB v3.4 . के लिए अन्य विकल्प ,

  • $filter bookmarks . के लूप को पुनरावृत्त करने के लिए और शर्त के आधार पर फ़िल्टर किए गए बुकमार्क प्राप्त करें
  {
    $lookup: {
      from: "bookmarks",
      localField: "_id",
      foreignField: "model_id",
      as: "bookmarks"
    }
  },
  {
    $addFields: {
      bookmarks: {
        $filter: {
          input: "$bookmarks",
          cond: { $eq: ["$$this.user_id", objectId(req.user._id)] }
        }
      }
    }
  }


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongodb - बैच क्वेरी निष्पादित करें

  2. MongoDB/Mongoose मैं बिना किसी विरोध के दो डीबी प्रविष्टियां कैसे जोड़ूं?

  3. MongoDB बनाम कैसेंड्रा

  4. प्रतिक्रियाशील स्प्रिंग डेटा MongoDB के साथ डीबी संदर्भों का उपयोग कैसे करें?

  5. नेवले को अलग कैसे इस्तेमाल करें, छोड़ें और एक साथ सीमित करें