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)