【问题标题】:Mongodb find documents that match any criterionMongodb 查找符合任何条件的文档
【发布时间】:2014-01-14 08:31:48
【问题描述】:

我正在编写一个 sinatra 应用程序,它将作为我正在构建的服务的后端。目前,就搜索而言,我处于停滞状态。

如果文档匹配任何一组条件,我需要能够执行匹配文档的 MongoDB 查找查询。 MongoDB可以做这样的事情吗? (红宝石代码):

results = @@mongodb["collection_name"].find( { "$any" => [ { "field" => keyword }, { "field2" => keyword } ] ).to_a

我的想法是基于ruby函数Array.any?

【问题讨论】:

  • 您需要重新构建文档以使 MongoDB 查询更加友好。您可能需要这样的文档:key: 'keyname', value: 'thevalue'。然后,您可以搜索任何字段。

标签: ruby mongodb sinatra


【解决方案1】:

$or?

{
  "$or" => [
    { "field" => keyword }, { "field2" => keyword }
  ]
}

考虑使用MongoMapperMongoid

【讨论】:

  • 这将匹配其中一个字段为keyword 的任何文档。如果两者都是keyword....
  • Mongoid 看起来很有希望,但我需要它是一个查询。速度至关重要。
  • 您能否提供一个您想匹配和不想匹配的文档示例?
  • 这更像是我有一个文档集合,我想匹配任何字段为特定值的文档。
  • 哦,我现在明白了。 MongoDB 目前无法做到这一点。不过有一张票:jira.mongodb.org/browse/SERVER-267
猜你喜欢
  • 2020-07-25
  • 1970-01-01
  • 2013-04-08
  • 1970-01-01
  • 2014-08-12
  • 2017-12-09
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多