这里我的代码模型是
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中添加这两个字段,如或。给出了工作实例。
如果您使用的是Mongoid 3,您可以这样编写查询:
self.or({name: /#{Regexp.escape(search)}/i}, {price: /#{Regexp.escape(search)}/i})
如果您使用的不是Mongoid 3(如MongoMapper或Mongoid 2),请给出名称和版本号。
来源:蒙古3的选择语法文档在这里。
试试这个
where('$or' => [{"name" => "/#{Regexp.escape(search)}/i"}, {"price" => "/#{Regexp.escape(search)}/i"}])