不确定如何在c#中使用ElemMatch for MongoDb(最新的驱动程序版本)

时间:2016-01-12 18:58:54

标签: c# mongodb bson

我有以下格式的MongoDB集合:

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

我试图查询数组“inclusions”包含我正在寻找的值的所有文档。这是代码

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.我做错了什么?

由于

1 个答案:

答案 0 :(得分:7)

我认为你可以通过这样的过滤器更简单地做到这一点:

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

这将过滤inclusions数组包含您要查找的值的文档。

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