Ruby on rails 如何使用Mongodb和Ruby on Rails进行查询?

Ruby on rails 如何使用Mongodb和Ruby on Rails进行查询?,ruby-on-rails,mongodb,Ruby On Rails,Mongodb,我有一个对象帖子,有一些属性。我想通过单个属性搜索那个对象。在我的例子中,就是这样 [58] pry(main)> Post.last => #<Post _id: 54e3852d776561352d020000, title: "123456", body: "4131231", draft: false, user_id: BSON::ObjectId('54e22da377656150d5000000')> 但是,只有Mongodb才能做到这一点 upd 2up

我有一个对象帖子,有一些属性。我想通过单个属性搜索那个对象。在我的例子中,就是这样

[58] pry(main)> Post.last
=> #<Post _id: 54e3852d776561352d020000, title: "123456", body: "4131231", draft: false, user_id: BSON::ObjectId('54e22da377656150d5000000')>
但是,只有Mongodb才能做到这一点

upd

2upd

您可以使用:

Post.where(draft: false).each { |rec| puts rec.title }
# or you can write
Post.where("this.draft == false").each do |rec|
  puts rec.title
end

注意:将给您对象而不是实际记录。您必须使用each遍历此对象,以获取第一条记录等。

您可以在irb中尝试此操作,并查看标题是否显示:

Post.where(draft: false).map(&:title)

Post.wheredraft=?,false它不使用Mongo?否,intepreter显示错误。更新问题Post.wheredraft:false。首先尝试一下,让我们知道显示的内容:Post.wheredraft:false.map&:title@vveare138应该行得通,但不行,听着,我喜欢这样:post=post.wherethis.draft==false,在我调用这个变量'post.title'和irb后显示一个错误'NoMethodError:undefined method'title'for'你能在这里发布post.wheredraft:false的响应吗?@vveare138你试过了吗。。我说了什么?
[2] pry(main)> Post.where(draft: false)
=> #<Mongoid::Criteria
  selector: {"draft"=>false}
  options:  {}
  class:    Post
  embedded: false>
Post.where(draft: false).each { |rec| puts rec.title }
# or you can write
Post.where("this.draft == false").each do |rec|
  puts rec.title
end
Post.where(draft: false).map(&:title)