如何使用Filter.In方法?
我有这样的文件:
{
"File" : "xxxxxxx.txt",
"Content" : [
{ "tag" : "Book",
"name" : "TestBook1",
"value" : "xxx"
},
{ "tag" : "Dept",
"name" : "TestDept1",
"value" : "yyy"
},
{ "tag" : "Employee",
"name" : "TestEmployee1",
"value" : "zzz"
}]
}
我知道这样的过滤器:
var subFilter = Builders<BsonDocument>.Filter.Eq("tag", "Dept");
我可以
{
"tag" : "Dept",
"name" : "TestDept1",
"value" : "yyy"
}
假设我有很多不同的标签,我想找到像“Book,Dept,Employee,xxxxx,yyyyy,zzzzz ......”这样的字符串中的任何标签。
我尝试使用Filter.In()
方法,但无法弄清楚如何传递所需的参数。
答案 0 :(得分:1)
您需要创建IEnumerable
(使用Contains
方法的内容)。
因此,如果你的标签用逗号分隔,你可以:
var tags = tagsString.Split(new char[] { ',' }).Select(p => p.Trim());
var results = await collection.Find(p => tags.Contains(p.Tag)).ToListAsync();
http://mongodb.github.io/mongo-csharp-driver/2.0/reference/driver/expressions/