2013-11-21 196 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#中使用变量吗? –

相关问题