2011-03-07 85 views
1

我搜索以獲取標記了某些標籤的所有內容。 $ OR不能嵌套在MongoDB中,但是如何使用List of Tags或List of string?在C#驅動程序中進行多OR查詢呢?使用QueryComplete或一些StringBuilder構建Or(tag1,tag2 params..tagn),使用多OR語句來查詢標記內容的方法是什麼?MongoDB C#offi:多搜索或類似搜索的查詢標籤

謝謝。

var query=new QueryComplete[]; 
List<Tags> tags=new List<Tags>(); 
foreach(Tag tag in tags) 
{ 

} 

回答

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()); 
+0

想象遞歸OR語句一樣的foreach(標籤標籤在標籤){query = Query.Or(query,Query.EQ(「tag.Name」,tag.Name))}你將嵌套標籤,你不能。 – user325558 2011-03-07 21:29:19

+0

是的....謝謝。 – user325558 2011-03-07 22:33:26

1

$in運營商在MongoDB中,似乎更適合上述任務:

List<Tags> tags=new List<Tags>(); 
Query.In("TagName", BsonArray.Create(tags.Select(x=> x.Name)));