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

सी # मोंगोडीबी चालक:मोंगोडीबी में किसी भी फ़िल्टर के लिए जटिल क्वेरी चलाने का तरीका नहीं मिल रहा है

ऐसा मत करो :)

एक जगह से आप शुरुआत कर सकते हैं यहां ए> . यह उन सभी LINQ ऑपरेटरों का वर्णन करता है जो MongoDB .NET ड्राइवर द्वारा समर्थित हैं। जैसा कि आप देख सकते हैं .Contains() इसका उल्लेख नहीं किया गया है जिसका अर्थ है कि आप इसका उपयोग नहीं कर सकते हैं और आपको रनटाइम में एक त्रुटि मिलेगी लेकिन इसका मतलब यह नहीं है कि आप जो हासिल करने की कोशिश कर रहे हैं उसे करने का कोई तरीका नहीं है।

आपके द्वारा उपयोग किए जा सकने वाले शामिल के निकटतम ऑपरेटर $indexOfBytes है। जो -1 returns लौटाता है यदि कोई मेल नहीं है और अन्यथा सबस्ट्रिंग की स्थिति है। इसके अलावा, चूंकि आपको किसी अन्य सरणी के विरुद्ध किसी सरणी का मिलान करने की आवश्यकता है, इसलिए आपको $नक्शा और $anyElementTrue ठीक वही करने के लिए जो .NET का .Any . है करता है।

आपकी क्वेरी (MongoDB क्लाइंट) इस तरह दिख सकती है:

db.collection.find({
    $expr: {
        $anyElementTrue: {
            $map: {
                input: "$groupsAuthorized",
                as: "group",
                in: {
                    $anyElementTrue: {
                        $map: { 
                            input: ["France/IDF/Paris", "USA/NY/NYC"],
                            as: "userGroup",
                            in: { $ne: [ -1, { $indexOfBytes: [ "$$userGroup", "$$group" ] } ] }
                        }
                    }
                }
            }
        }
    }
})

मोंगो खेल का मैदान ,

आप BsonDocument . का उपयोग करके .NET से समान क्वेरी चला सकते हैं क्लास जो एक स्ट्रिंग (JSON) लेती है और एक क्वेरी में कनवर्ट करती है:

var query = BsonDocument.Parse(@"{
    $expr: {
        $anyElementTrue:
        {
            $map:
            {
                input: '$groupsAuthorized',
                    as: 'group',
                    in: {
                    $anyElementTrue:
                    {
                        $map:
                        {
                            input: ['France/IDF/Paris', 'USA/NY/NYC'],
                                as: 'userGroup',
                                in: { $ne: [-1, { $indexOfBytes: ['$$userGroup', '$$group'] } ] }
                        }
                    }
                }
            }
        }
    }
}");

var result = col.Find(query).ToList();



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:फ़ील्ड के डेटाटाइप को बल दें?

  2. OnBeforeUnload ईवेंट का उपयोग करके ब्राउज़र रीफ़्रेश करें

  3. mongoengine - स्कीमा सत्यापन के लिए अतिरिक्त क्षेत्रों पर ध्यान न दें

  4. मोंगोडीबी/पायमोंगो:रेगेक्स खोज में पैरामीटर से कैसे बचें?

  5. MongoDB जनरेट किए गए _ids को गुप्त डेटा के रूप में उपयोग करना (उदा., OAuth टोकन)