2013-11-21 169 views
-1

我想在集合中存在的字符串列表中查找字符串。使用MongoDB查找字符串列表中的字符串

E.g.在我的收藏「作品」

tag: {"cute", "handsome", "modest"} 

如果我從搜索欄輸入「cute」。它將搜索在字符串列表標籤中查找「可愛」標籤。

我如何用mongodb查詢做到這一點?

+0

您能否提供有效的JSON文檔? –

+0

這是無效的散列和無效數組。你真的有這樣的結構文件嗎?我對此表示懷疑。 –

+0

http://pastebin.com/YyN6JPzt這是集合模型 – user3008355

回答

1

如果你想獲得的所有作品,其中有「可愛」的標籤,然後使用以下查詢:

{ tag: "cute" } 

的MongoDB會明白,標籤陣列,並檢查「可愛」項目的存在。 C#示例:

var works = db.GetCollection<WorkBase>("works"); 
var cuteWorks = works.Find(Query.EQ("tag", "cute")); 

或者你可以使用LINQ(MongoDB.Driver.Linq

var cuteWorks = from w in works.AsQueryable() 
       where w.Tags.Contains("cute") 
       select w; 

BTW不要忘記你的屬性正確映射。例如。物業Tag應該有指定正確的元素名稱:

[BsonElement("tag")] 
public List<string> Tag { get; set; } 

也可以考慮,因爲你的標籤集合,而不是單個標籤重命名屬性Tags

+0

可愛只是一個例子。如果用戶鍵入「帥」,我必須找到記錄有一個名爲帥的標籤。 – user3008355

+1

@ user3008355你知道如何在c#中使用變量嗎? –

相關問題