【问题标题】:Querying in MongoDB Compass在 MongoDB Compass 中查询
【发布时间】:2018-02-17 04:43:45
【问题描述】:

只是一个简单的问题,我希望有人可以为我回答。

我在 MongoDB 中有一个包含 84,000 个文档的集合。数据看起来像这样:

有几千个文档包含单词“BOND”作为类别名称,例如:

还有成千上万...

目前在 MongoDB Compass 中,我正在使用以下查询:

{ "Category" : "BOND" }

当然,这只会返回 1 个类别为 BOND 的文档。

谁能告诉我如何查询以查找字段名称“Category”中包含“BOND”一词的所有文档?

非常感谢, G

【问题讨论】:

  • 顺便说一句,这个问题出奇的受欢迎,你会考虑改标题吗?像“在 MongoDB 中通过子字符串查询”之类的东西?

标签: mongodb


【解决方案1】:

您应该为此使用正则表达式,即

{ "Category" : /^BOND.*/ }

对于以 BOND 开头的类别,或

{ "Category" : /.*BOND.*/ }

对于包含 BOND 的类别

【讨论】:

  • 如果我想从文件中的数据中搜索所有文档怎么办。 (对于上面的例子)说一个包含 oSum 值列表的文件,我想要所有与这些 oSum 匹配的文档
  • @Alexey-Sviridov 我们可以做些什么来区分大小写,因为这不起作用?
  • @vibs2006 您可以在此处阅读有关 mongo 的 $regex 的完整文档 - docs.mongodb.com/manual/reference/operator/query/regex 对于不区分大小写的情况,您可以查询您的集合,例如 { "Category" : /^BOND.*/i }(注意 i 之后关闭 /)
  • @ParasSingh 我想您应该将文件导入单独的集合中,然后使用 $lookup 语句进行聚合(请参阅此处关于 $lookup docs.mongodb.com/manual/reference/operator/aggregation/lookup
猜你喜欢
  • 2019-11-24
  • 2019-06-30
  • 1970-01-01
  • 2018-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-25
  • 2022-01-11
相关资源
最近更新 更多