如何使用过滤器数据作为sql在MongoDB中“LIKE”,而不是在我的rails应用程序上使用gem mongomapper? .thanks
答案 0 :(得分:4)
如果您正在查找字符串上的部分匹配项,则可以使用正则表达式进行查询。这是mongomapper文档的相关部分:
http://api.mongodb.org/ruby/current/file.TUTORIAL.html#Querying_with_Regular_Expressions
值得注意的是Mongodb docs:
“对于简单的前缀查询(也称为root的regexps),如/ ^ prefix /,数据库将在可用且适当时使用索引(非常类似于使用LIKE'前缀%'表达式的索引的大多数SQL数据库)。只有在标志中没有i(不区分大小写)时才有效。“
答案 1 :(得分:3)
最接近SQL LIKE的是/ query /
例如: -
Person.where('name' => /John/).all => John F, John Doe, Johnny...etc
编辑:这仍然是区分大小写的
答案 2 :(得分:-1)
尝试这些对我有用:
@ store_array = User.where(:$或=> [{:first_name => /.#{@search_text}./i},{:last_name => /。 #{@ SEARCH_TEXT} ./ I}])中的所有();