我想只在计数高于某个值时才将查询mongoid中的值赋给变量。
如果我这样做
mdl = Mdl.by_params(params) unless Mdl.by_params(params) < limit
查询执行两次,如何检查并分配一个查询?
答案 0 :(得分:1)
可能的解决方案取决于md1
数据的类型。
通用解决方案:
((mdl = Mdl.by_params(params)) < limit) && md1 = nil
如果md1
是 mutatable 对象的实例,则会响应replace
(例如Hash
):
Mdl.by_params(params).tap do |md|
md1.replace(md) unless CONDITION # md[:limit] < limit
end
答案 1 :(得分:0)
您必须从Mongoid检索数据才能进行比较。
mdl_temp = Mdl.by_params(params)
mdl = mdl_temp unless mdl_temp < limit