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

MongoDB एकत्रीकरण:डबल लुकअप, और संबंधित ऑब्जेक्ट के लिए लुकअप प्रतिक्रिया मर्ज करें

इस क्वेरी को आजमाएं:

db.companies.aggregate([
    { $match: { _id: companyId } },
    { $unwind: "$professionals_customers" },
    {
        $lookup: {
            from: "companies",
            localField: "professionals_customers.company",
            foreignField: "_id",
            as: "professionals_customers.company"
        }
    },
    {
        $lookup: {
            from: "users",
            localField: "professionals_customers.contact",
            foreignField: "_id",
            as: "professionals_customers.contact"
        }
    },
    {
        $addFields: {
            "professionals_customers.company": {
                $arrayElemAt: ["$professionals_customers.company", 0]
            },
            "professionals_customers.contact": {
                $arrayElemAt: ["$professionals_customers.contact", 0]
            }
        }
    },
    {
        $group: { _id: "$_id", professionals_customers: { $push: "$professionals_customers" }, data: { $first: "$$ROOT" } }
    },
    { $addFields: { "data.professionals_customers": "$professionals_customers" } },
    { $replaceRoot: { newRoot: "$data" } }
])

परीक्षा : MongoDB-Playground

नोट : यदि आवश्यक हो तो आपको स्ट्रिंग . प्रकार के फ़ील्ड/इनपुट को कनवर्ट करने की आवश्यकता है करने के लिए ObjectId() . बुनियादी बात यह है कि आपको तुलना किए जा रहे दो क्षेत्रों के प्रकार या इनपुट-टू-फील्ड-इन-डीबी मिलान या नहीं की जांच करने की आवश्यकता है।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB एकत्रीकरण क्वेरी जटिलता का मूल्यांकन:$लुकअप की लागत

  2. MongoDB काफ्का सिंक कनेक्टर RenameByRegex प्रोसेसर को संसाधित नहीं करता है

  3. उपयोगकर्ता स्थान इतिहास संग्रहीत करने के लिए MongoDB स्कीमा

  4. नोड-मोंगोडब-मूल का प्रदर्शन डालें

  5. ऑब्जेक्ट आईडी को JSON पर क्रमबद्ध कैसे करें?