0

这里我在模型中的代码是

def self.search(search)
    if search
     where(name: /#{Regexp.escape(search)}/i)
    else
      scoped
    end
  end

现在我想添加另一个字段来搜索

where(price: /#{Regexp.escape(search)}/i)

所以我的查询应该搜索两个字段

 where(name: /#{Regexp.escape(search)}/i) (or)  where(price: /#{Regexp.escape(search)}/i)

如何在 mongodb 中添加这两个字段,如 或 . 工作示例被接受。因为我对mongodb知之甚少。

4

2 回答 2

1

如果您使用的是 Mongoid 3,则可以这样编写查询:

self.or({name: /#{Regexp.escape(search)}/i}, {price: /#{Regexp.escape(search)}/i})

如果您使用的不是 Mongoid 3(如 MongoMapper 或 Mongoid 2),请提供名称和版本号。

来源: Mongoid 3 的选择语法文档在这里

于 2013-01-16T08:11:01.207 回答
0

试试这个
where('$or' => [{"name" => "/#{Regexp.escape(search)}/i"}, {"price" => "/#{Regexp.escape(search)}/i"}])

于 2013-01-16T07:11:01.357 回答