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

MongoDB:मूल लुकअप की तुलना में धीमी प्रदर्शन पाइपलाइन लुकअप

बात यह है कि जब आप lookup . करते हैं pipeline . का उपयोग करना मैच चरण के साथ, तब अनुक्रमणिका का उपयोग केवल उन फ़ील्ड के लिए किया जाएगा जो $eq operator से मेल खाते हैं और बाकी के लिए अनुक्रमणिका का उपयोग नहीं किया जाएगा।

और आपके द्वारा पाइपलाइन के साथ निर्दिष्ट उदाहरण इस तरह काम करेगा ( फिर से अनुक्रमणिका का उपयोग यहां नहीं किया जाएगा क्योंकि यह नहीं है $eq )

db.matches.aggregate([
  {
    $lookup: {
      from: "players",
      let: {
        ids: {
          $map: {
            input: "$players",
            in: "$$this._id"
          }
        }
      },
      pipeline: [
        {
          $match: {
            $expr: {
              $in: [
                "$_id",
                "$$ids"
              ]
            }
          }
        }
      ],
      as: "players"
    }
  }
])

चूंकि खिलाड़ी ऑब्जेक्ट की एक सरणी है, इसलिए इसे पहले आईडी की सरणी में मैप करने की आवश्यकता है

MongoDB खेल का मैदान



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Yii2 ऑब्जेक्ट डेटा Json के रूप में वापस पाने में सक्षम नहीं है

  2. नेवला मॉडल अद्यतन () बनाम सहेजें ()

  3. नेवला आबाद रिटर्न अशक्त सरणी

  4. MongoDB प्रत्येक डेटाबेस को छोड़ देता है

  5. MongoDB पर बहुभाषी डेटा मॉडलिंग