Jer*_*ith 1 ruby ruby-on-rails mongodb
我有一个难以理解的难题.
在rails控制台中,如果我使用
@o = ObjName.where(o_id: "VAL")
Run Code Online (Sandbox Code Playgroud)
我没有得到一个返回的对象.我得到了这个:
=> #<Mongoid::Criteria
selector: {:conditions=>{:site_id=>"PST"}},
options: {},
class: Site,
embedded: false>
Run Code Online (Sandbox Code Playgroud)
但如果我使用:
@o = ObjName.first(:conditions => {:o_id => "VAL"})
Run Code Online (Sandbox Code Playgroud)
我做.在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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
504 次 |
| 最近记录: |