我正在构建一个rails(3.2)app,我按照here描述的程序使用了文本搜索。我正在使用mongodb
。根据我在控制器中提供的链接,我写道:
@products = Product.search(params[:search])
同样在模型:
def self.search(search)
if search
where(organization_name: /#{search}/ )
else
scoped
end
end
我的问题是:我有三个字段organization_name
,title
和description
,我必须搜索文本。在上面的代码中,我只搜索organization_name
字段中的文本。我需要查询:
搜索文字是指organization_name field
或 description
字段或 title
字段
Railcast 描述的搜索区分大小写。如何使其不区分大小写搜索?
答案 0 :(得分:1)
在mongo控制台中,您的查询将如下所示(search
必须是您的搜索字符串):
db.products.find(
{
$or: [
{ organization: { $regex: search, $options: 'i' } },
{ descrption: { $regex: search, $options: 'i' } },
{ title: { $regex: search, $options: 'i' } }
]
}
)