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

MongoDB $graphLookup बच्चों को सभी स्तरों पर गहराई से प्राप्त करें - नेस्टेड परिणाम

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

यह कुछ इस तरह दिखेगा:

db.node.aggregate([
    { $match: {
        parentId: null
    }},
    { $graphLookup: {
        from: "node",
        startWith: "$nodeId",
        connectFromField: "nodeId",
        connectToField: "parentId",
        depthField: "depth",
        as: "children"
    }}
]);

यह आपको एक बार में पूरे पदानुक्रम को लाने देना चाहिए, इसलिए आगे, आपको अपने आवेदन में पेड़ की गणना करने की आवश्यकता है, जो आपके पास "बच्चों" सरणी में होगी।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. DataImportHandler का उपयोग करके MongoDB और Solr को जोड़ने के चरण

  2. नेवला पृष्ठ पर अंक लगाना और फ़िल्टर

  3. मोंगोडब इरनो से कनेक्ट नहीं हो सकता:61 कनेक्शन अस्वीकृत

  4. PHP में कई क्षेत्रों पर लोचदार खोज और खोज

  5. नोड + नेवला:अंतिम डाली गई आईडी प्राप्त करें?