【问题标题】:Finding a string in a string list with MongoDB [duplicate]使用 MongoDB 在字符串列表中查找字符串 [重复]
【发布时间】:2013-11-21 11:55:41
【问题描述】:

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

例如在我的收藏“作品”中

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

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

如何使用 mongodb 查询来做到这一点?

【问题讨论】:

  • 您能否提供您文档的有效 JSON 格式?
  • 这是无效的哈希和无效的数组。你真的有这种结构的文件吗?我对此表示怀疑。
  • pastebin.com/YyN6JPzt这是该系列的模型

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


【解决方案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;

顺便说一句,不要忘记正确映射您的属性。例如。属性Tag 应指定正确的元素名称:

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

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

【讨论】:

  • cute 只是一个例子。如果用户输入“帅”,我必须找到记录有标签名为帅。
  • @user3008355 你知道如何在c#中使用变量吗?
猜你喜欢
  • 2019-11-17
  • 2018-06-03
  • 1970-01-01
  • 1970-01-01
  • 2014-05-09
  • 1970-01-01
  • 1970-01-01
  • 2012-05-16
相关资源
最近更新 更多