我有以下格式的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。我在做什么错?

谢谢

最佳答案

我认为您可以使用以下过滤器来更简单地执行此操作:

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

这将筛选出inclusions数组包含您要查找的值的文档。

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

关于c# - 不知道如何在C#中为MongoDb使用ElemMatch(最新驱动程序版本),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34751720/

10-09 20:20
查看更多