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

मोंगोडीबी सी # ऑब्जेक्ट्स की क्वेरी ऐरे जिसमें संपत्ति मान होता है

मेरा मानना ​​है कि आप In . की तलाश कर रहे हैं FilterDefinition, जो आपके बिल्डर को इस तरह दिखाएगा;

return Builders<MyObject>.Filter.ElemMatch(
            o => o.arrayProperty,
            Builders<ArrayProperty>.Filter.In(y => y.string1, listToFind));

यह इस क्वेरी को बनाता है

db.MyObject.find({ "arrayProperty" : { "$elemMatch" : { "string1" : { "$in" : ["a", "b", "aString"] } } } })

रेगेक्स का उपयोग करने में सक्षम होने के लिए आपको एक अलग क्वेरी बनानी होगी (मैं कॉफी पर नहीं हूं इसलिए यह बिना किसी वारंटी के है)

        var listToFind = new List<string> { "a", "b", "astring" };

        var regexList = listToFind.Select(x => new BsonRegularExpression(x, "i"));

        var filterList = new List<FilterDefinition<MyObject>>();
        foreach (var bsonRegularExpression in regexList)
        {
            FilterDefinition<MyObject> fil = Builders<MyObject>.Filter.ElemMatch(o => o.arrayProperty, Builders<ArrayProperty>.Filter.Regex(
                 x => x.string1,
                 bsonRegularExpression));

            filterList.Add(fil);
        }


        var orFilter = Builders<MyObject>.Filter.Or(filterList);

        var result = collection.Find(orFilter).ToList();

जो निम्नलिखित क्वेरी बनाता है

db.MyObject.find({ "$or" : [{ "arrayProperty" : { "$elemMatch" : { "string1" : /a/i } } }, { "arrayProperty" : { "$elemMatch" : { "string1" : /b/i } } }, { "arrayProperty" : { "$elemMatch" : { "string1" : /astring/i } } }] })


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. क्या MongoDB में संग्रहीत सरणियाँ अपना क्रम बनाए रखती हैं?

  2. आसपास के खिलाड़ियों के साथ मोंगो में रैंक लीडरबोर्ड

  3. क्या मैं मोंगोडीबी में दायर नाम के रूप में चर का उपयोग करते समय एम्बेडेड दस्तावेज़ पर '$ सेट' का उपयोग कर सकता हूं?

  4. MongoDB साझा क्लस्टर में लोड बैलेंसर को कॉन्फ़िगर करने के लिए एक गाइड

  5. MongoDB के लिए Percona बैकअप का अवलोकन