/ / не сте сигурни как да използвате ElemMatch в c # за MongoDb (най-новата версия на драйвера) - c #, mongodb, bson

не сте сигурни как да използвате ElemMatch в c # за MongoDb (най-новата версия на драйвера) - c #, mongodb, bson

Имам колекция MongoDB в следния формат:

{
"_id" : ObjectId("5692a3397d7518330416f8e5"),
"supertagname" : "xxx",
"inclusions" : [
"test",
"blabla"
],
"exclusions" : [ ]
}

и се опитвам да запитвам за всички документи, където масивът "включвания" съдържа стойността, която търся. Ето кода

string t = "blabla"; // the string value I am looking for

filter = Builders<BsonDocument>.Filter.ElemMatch(
"inclusions", Builders<BsonDocument>.Filter.Eq("inclusions", t));

var matches = dictCollection.Find(filter).ToList();

foreach (BsonDocument doc in matches) {}

matches.count е винаги 0. Какво правя грешно?

Благодаря

Отговори:

5 за отговор № 1

Мисля, че можете да направите това по-просто с филтър по този начин:

var filter = Builders<BsonDocument>.Filter.AnyEq("inclusions", t);

Това ще филтрира за документите, където inclusions масивът съдържа стойността, която търсите.

http://mongodb.github.io/mongo-csharp-driver/2.2/reference/driver/definitions/#array-operators