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

मोंगोडब:ग्राफ़लुकअप के अंदर कनेक्टटॉफिल्ड की गणना की गई

connectToField एक नाम है, अभिव्यक्ति नहीं। आप इसके साथ कुछ नहीं कर सकते।

आपको वास्तव में स्कीमा पर फिर से विचार करने की आवश्यकता है। यह मूल संदर्भों में प्रयुक्त गैर-अद्वितीय नामों से शुरू होने वाले कई मायनों में त्रुटिपूर्ण है। चूंकि आप इसके बजाय पथ स्ट्रिंग पर भरोसा करते हैं , आपको माता-पिता को संदर्भित करने के लिए पथ की आवश्यकता है।

नीचे दिया गया उत्तर इसे रनटाइम करता है, और प्रदर्शन अक्षमता के कारण परिचालन संबंधी प्रश्नों के लिए शायद ही उचित हो और पथ कैसे बनाया जाता है इसकी कुछ धारणाएं। हालांकि इसे एकबारगी अनुरोध के रूप में इस्तेमाल किया जा सकता है।

मूल रूप से आपको एक दृश्य बनाने की आवश्यकता है। परिकलित मूल पथ के साथ:

db.createView("rootless_tree", "tree", [
    { $match: { parent: { $ne: null } } },
    { $addFields: {
        parent_path: { $let: {
            vars: { parents: { $split: [ "$path", "#" ] } },
            in: { $reduce: {
                input: { $slice: [ "$$parents", 1, { $subtract: [ { $size: "$$parents" }, 2 ] } ] },
                initialValue: "",
                in: { $concat: [ "$$value", "#", "$$this" ] }
            } }
        } }
    } }
]);

तो फिर आप अपने पिछले प्रश्न में सलाह के अनुसार अपना लुकअप कर सकते हैं:

db.tree.aggregate([
    { $graphLookup: {
        from: "rootless_tree", 
        startWith: "$path", 
        connectFromField: "path", 
        connectToField: "parent_path", 
        as:"dep"
    } },
    { $match: { dep: [] } },                       
])



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB उपयोगकर्ता प्रबंधन के साथ शुरुआत करना

  2. एकत्रीकरण ढांचे में $अनविंड और $टेक्स्ट का उपयोग mongodb

  3. DigitalOcean पर MongoDB को होस्ट करने का सबसे अच्छा तरीका

  4. मैं मोंगोडीबी को सोलर के साथ कैसे एकीकृत करूं?

  5. कई मानदंड जोड़ते समय com.mongodb.BasicDBObject अपवाद की सीमाओं के कारण GridFSDBFile क्वेरी