#{:site_id=>-6ren">
gpt4 book ai didi

ruby-on-rails - 使用 Mongoid 查询语法与 Activerecord

转载 作者:太空宇宙 更新时间:2023-11-03 17:40:20 27 4
gpt4 key购买 nike

我遇到了一个让我困惑的小难题。

如果我使用,在 Rails 控制台中

@o = ObjName.where(o_id: "VAL")

我没有得到返回的对象。我明白了:

 => #<Mongoid::Criteria
selector: {:conditions=>{:site_id=>"PST"}},
options: {},
class: Site,
embedded: false>

但是如果我使用:

@o = ObjName.first(:conditions => {:o_id => "VAL"})

我愿意。在 Mongoid 中使用函数的地方,我的模型包括 Mongoid。所以我不明白为什么这不起作用。

最佳答案

Mongoid 的加载非常懒惰。它只会在您迭代结果时执行查询并将结果加载到对象中。

因此 Model.find 将执行 mongodb findOne 方法并加载到结果中。

@o = ObjName.where(o_id=>"VAL").first #will push into an object

@o = ObjName.where(:status=>"whoknows").all
#query has not been loaded
@o.each do |o|
#now the query has been executed
puts o
end

关于ruby-on-rails - 使用 Mongoid 查询语法与 Activerecord,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5638332/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com