我搜索所有标记有一些标签的内容。 $ OR不能嵌套在MongoDB中,但是如何使用标签列表或字符串列表在C#驱动程序中进行多OR查询?使用QueryComplete或一些StringBuilder构建Or(tag1,tag2 params..tagn),使用多OR语句查询标记内容的方法是什么?
感谢。
var query=new QueryComplete[];
List<Tags> tags=new List<Tags>();
foreach(Tag tag in tags)
{
}
答案 0 :(得分:3)
这样的事情怎么样:
List<QueryComplete> myarray = new List<QueryComplete>();
foreach(Tag t in Tags)
{
myarray.Add(Query.EQ(TagName, t.TagName));
}
var query = Query.Or(myarray.ToArray());
答案 1 :(得分:1)
mongodb中有$in运算符,似乎更适合上述任务:
List<Tags> tags=new List<Tags>();
Query.In("TagName", BsonArray.Create(tags.Select(x=> x.Name)));