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

MongoDB में एक संग्रह पर पुनरावर्ती खोज

MongoDB 3.4 से शुरू करके, हम इसे एग्रीगेशन फ्रेमवर्क के साथ कर सकते हैं।

हमारी पाइपलाइन में पहला और सबसे महत्वपूर्ण चरण है $graphLookup मंच। $graphLookup हमें "पैरेंट" और "नाम" फ़ील्ड पर पुनरावर्ती मिलान करने की अनुमति देता है। परिणामस्वरूप, हमें प्रत्येक "नाम" के पूर्वज मिलते हैं।

पाइपलाइन में अगला चरण $match है वह चरण जहां हम केवल उस "नाम" का चयन करते हैं जिसमें हम रुचि रखते हैं।

अंतिम चरण है $addFields या $project वह चरण जहां हम $map सरणी ऑपरेटर।

बेशक $reverseArray के साथ ऑपरेटर हम अपने एरे को उलट दें अपेक्षित परिणाम प्राप्त करने के लिए।

db.collection.aggregate(
    [ 
        { "$graphLookup": { 
            "from": "collection", 
            "startWith": "$parent", 
            "connectFromField": "parent", 
            "connectToField": "name", 
            "as": "ancestors"
        }}, 
        { "$match": { "name": "D" } }, 
        { "$addFields": { 
            "ancestors": { 
                "$reverseArray": { 
                    "$map": { 
                        "input": "$ancestors", 
                        "as": "t", 
                        "in": { "name": "$$t.name" }
                    } 
                } 
            }
        }}
    ]
)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. सटीक उप दस्तावेज़ स्तर की स्थिति के बिना एकाधिक उप-दस्तावेज़ अपडेट करें

  2. नेवला - _id . के साथ वस्तुओं की सरणी के बजाय _ids की सूची प्राप्त करें

  3. गोलांग मोंगोडब (एमजीओ) दस्तावेज़ सम्मिलित नहीं कर रहा है

  4. विंडोज़ से मोंगोडब को अनइंस्टॉल कैसे करें

  5. MongoDB में दस्तावेज़ सम्मिलित करने के 5 तरीके