使用MongoDB在字符串列表中查找字符串

时间:2013-11-21 11:55:41

标签: c# mongodb mongodb-.net-driver mongodb-query

我想在字符串列表中找到一个字符串,其中存在于集合中。

E.g。在我的收藏“作品”

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

如果我从搜索字段输入“可爱”。它将搜索在字符串列表标签中找到“可爱”标签。

我如何使用mongodb查询执行此操作?

1 个答案:

答案 0 :(得分: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不要忘记正确地映射您的属性。例如。 property Tag应该指定正确的元素名称:

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

还要考虑将属性重命名为Tags,因为您有标记集合,而不是单个标记。