mongodb 在Rails 4的Mongoid中查找与Model中的文本匹配(或类似)的所有项

bfhwhh0e  于 2023-04-20  发布在  Go
关注(0)|答案(3)|浏览(125)

我正在一个项目中工作,Rails 4和Mongodb作为后端,得到了奇妙的宝石“Mongoid”的帮助,我想找到我的模型“Item”的所有项目,这些项目也与使用“类似sql”的搜索词相匹配。
我的模型看起来像:

class Item
  include Mongoid::Document
  field :name, :type => String
  field :importe, :type => BigDecimal
  field :tipo, :type => String  
end

尝试在控制器中执行此操作,但无法正常工作:

Item.where(name: Regexp.new(".*"+params[:keywords]+".*"))

(其中“params[keywords]”是搜索项)因为当存在具有此名称值的项时,不会返回任何内容。
如何进行此查询?

kmpatx3s

kmpatx3s1#

在ruby rails中,我们需要这样做:

condition = /#{params[:keywords]}/i
Item.where(:name => condition)
vd2z7a6w

vd2z7a6w2#

Item.where({:name => "/#{params[:keywords]}/i"})
zengzsys

zengzsys3#

这个答案是给我的,当我在未来再次去这个问题。

Item.where(name: /.*phon.*/i).to_a

相关问题