【发布时间】:2011-07-24 12:24:46
【问题描述】:
如何在 MongoDB 中使用过滤数据作为 sql 执行“LIKE”,而不是在我的 Rails 应用程序上使用 gem mongomapper? .谢谢
【问题讨论】:
标签: mongodb mongomapper
如何在 MongoDB 中使用过滤数据作为 sql 执行“LIKE”,而不是在我的 Rails 应用程序上使用 gem mongomapper? .谢谢
【问题讨论】:
标签: mongodb mongomapper
如果您要查找字符串的部分匹配项,您可以使用正则表达式进行查询。这是 mongomapper 文档的相关部分:
http://api.mongodb.org/ruby/current/file.TUTORIAL.html#Querying_with_Regular_Expressions
值得注意的是 Mongodb 文档:
“对于像 /^prefix/ 这样的简单前缀查询(也称为根正则表达式),数据库将在可用且适当时使用索引(很像大多数使用索引来表示 LIKE 'prefix%' 表达式的 SQL 数据库)。这只有在标志中没有 i(不区分大小写)时才有效。”
【讨论】:
最接近 SQL LIKE 的是 /query/
例如:-
Person.where('name' => /John/).all => John F, John Doe, Johnny...etc
编辑:这仍然区分大小写
【讨论】:
试试这些对我有用:
@store_array=User.where(:$or => [{:first_name => /.#{@search_text}./i}, {:last_name => /. #{@search_text}./i}]).all();
【讨论】: