我想在字符串列表中找到一个字符串,其中存在于集合中。
E.g。在我的收藏“作品”
tag: {"cute", "handsome", "modest"}
如果我从搜索字段输入“可爱”。它将搜索在字符串列表标签中找到“可爱”标签。
我如何使用mongodb查询执行此操作?
答案 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
,因为您有标记集合,而不是单个标记。