MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

MongoDB C# Query Array of Objects yang berisi nilai properti

Saya yakin Anda sedang mencari In FilterDefinition, yang akan membuat Builder Anda terlihat seperti ini;

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

Ini membangun kueri ini

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

Untuk dapat menggunakan Regex, Anda harus membuat kueri yang berbeda (saya tidak suka kopi jadi ini tanpa jaminan apa pun)

        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();

Yang membuat kueri ikuti

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. Pencarian teks lengkap dengan bobot luwak

  2. Bagaimana cara mengganti substring dalam dokumen mongodb

  3. DB Grafik vs. DB Dokumen vs. Triplestores

  4. Tambahkan Leading Zeros di SQL

  5. Menggunakan Beberapa Basis Data Mongodb dengan Meteor.js