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

उप-दस्तावेजों की सरणी कैसे फ़िल्टर करें?

MongoDB 3.2 से शुरू करके, हम $filter इसके लिए कुशलता से ऑपरेटर। $filter . में की सशर्त अभिव्यक्ति हमें $setIsSubset का उपयोग करने की आवश्यकता है कोड> ऑपरेटर यह जांचने के लिए कि क्या दिया गया मान सरणी में है। इसका मुख्य कारण यह है कि हम $in<का उपयोग नहीं कर सकते /कोड> $project में क्वेरी ऑपरेटर मंच।

db.collection.aggregate([
    { "$project": { 
        "list": { 
            "$filter": { 
                "input": "$list", 
                "as": "lst", 
                "cond": { "$setIsSubset": [ [ "$$lst.a" ], [ 1, 5 ] ] }
            } 
        } 
    }}
])

MongoDB 3.0.x से पीछे की ओर आपको का उपयोग करके एक अलग, कम कुशल दृष्टिकोण की आवश्यकता है। $नक्शा ऑपरेटर और $setDifference ऑपरेटर।

db.collection.aggregate([
    { "$project": { 
        "list": { 
            "$setDifference": [ 
                { "$map": { 
                    "input": "$list", 
                    "as": "lst", 
                    "in": { 
                        "$cond": [
                            { "$setIsSubset": [ [ "$$lst.a" ], [ 1, 5 ] ] },
                            "$$lst",
                            false
                        ] 
                    } 
                }}, 
                [false] 
            ]
        }
    }}
])


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. सी # मोंगोडीबी ड्राइवर v2.0 में कनेक्शन की स्थिति कैसे प्राप्त करें?

  2. मोंगोडब अगर फ़िल्टर के तहत स्थिति है तो कैसे बनाना है

  3. MongoDB बैकअप लेने के लिए बुनियादी बातें

  4. MongoDB - कोड 48 . के साथ बंद करना

  5. नेवले के साथ स्कीमा में फ़ील्ड जोड़ें नहीं

© कॉपीराइट http://hi.sqldat.com सर्वाधिकार सुरक्षित