ruby-on-rails - 使用 Rails 搜索 MongoDB

标签 ruby-on-rails ruby mongodb

我正在使用 ruby​​ 1.9.3p194 和 rails 3.2.5 当我做的时候

@authors = Author.all

通过从我的数据库输出所有名称,它工作正常。 但是

@authors = Author.where("name like ?", "%#{params[:q]}%")

不工作。我正在使用 MongoDB。我想在输入 R 时输出名称(Ram)。 可能的解决方案是什么?


通过这种方法,我可以仅通过我的字段 :name 搜索 params[:q]。我怎样才能添加其他字段名称,这样我也想在文本字段 :role , :email 中同时搜索这个 params[:q] ?我用过||但它给出了错误。 我必须在评论中写下这个,但因为我的评论列表很长。我在这里问这个问题。 对此感到抱歉。

最佳答案

MongoDB 不像在 SQL 中那样使用“LIKE”查询。 您(可以)使用正则表达式: http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-RegularExpressions

要解决您的特定问题,您可以使用 @authors = Author.where(name:/#{params[:q]}/),但我不确定这是否是安全问题。

关于ruby-on-rails - 使用 Rails 搜索 MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12033934/

相关文章:

Ruby - 如何提高数组扫描的性能?

ruby - 如何在 debian squeeze 上将 ruby​​1.9.1 设​​置为默认版本

node.js - MongoDB : How to pick with $lte/lt all the documents that answer to specific $sum condition?

mongodb - 如何在地理空间搜索中使用 MongoDB 和 Mongoose 返回距离?

ruby-on-rails - Rails 4 中的命名路由助手与数组

ruby - 从 Ruby 中的字符串中提取数字

ruby-on-rails - 如何使用 bool 逻辑验证 validate_presence_of ?

spring - 自定义或提供提示以允许 Spring MongoTemplate 使用 final 成员反序列化对象

jquery - FireWatir 和 jQuery

ruby-on-rails - 为什么 spec_helper 有这个 ENV ["RAILS_ENV"] ||= "test"?