从导轨mongoid中查询大量键
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从导轨mongoid中查询大量键相关的知识,希望对你有一定的参考价值。
我有一个在mongo上运行的Rails应用。我需要查询一个文档来执行大量计算。密钥列表很大,例如50多个。
我将在模型本身中编写计算方法。
由于键的数量巨大,如果我继续将键的值分配给局部变量并使用它们,则必须创建50个以上的局部变量。它看起来像如下:
def get_score
record = Model.last
a1 = record['k1'],
a2 = record['k2'],
a3 = record['k3']
##---so--on 50 plus keys
#formulae. Where I will be using the a1...a50 variables to calculate.
end
这将使方法不必要地显得庞大,并且根本看起来效率不高。有没有一种方法可以将这些键添加到文件或哈希中,并映射并一次在模型上调用这些键?
答案
为了避免重复的哈希访问,您可以这样做:
hash={'a1'=>1,'a2'=>2}
eval (1..2).map { |i| "@a#{i} = hash['a#{i}'];" }.join
这给您@a1
和@a2
。
我不知道如何以编程方式创建局部变量。您可以写入binding,但不能写入本地范围。
以上是关于从导轨mongoid中查询大量键的主要内容,如果未能解决你的问题,请参考以下文章
使用 Mongoid 和 Ruby 查询最近 30 天的日期范围?