gpt4 book ai didi

mongodb - 大于两个字段之和的Mongoid

转载 作者:可可西里 更新时间:2023-11-01 10:44:36 28 4
gpt4 key购买 nike

您好,我正在使用 mongoid (mongodb) 来实现大于标准:

Account.where(:field1.gt => 10)

但我想知道是否有可能做一个标准,其中两个字段的总和大于某个数字。也许是这样的(但似乎不起作用):

Account.where(:'field1 + field2'.gt => 10)

也许需要一些嵌入式 javascript?谢谢!

最佳答案

我建议使用 Piotr 所建议的 Mongoid 3 语法,但如果你想以一些存储开销为代价提高性能,你可以尝试这样的事情:

class Account
# ...
field :field1, :type => Integer
field :field2, :type => Integer
field :field3, :type => Integer, default -> { field1 + field2 }

index({ field3: 1 }, { name: "field3" })

before_save :update_field3

private

def update_field3
self.field3 = field1 + field2
end

end

那么你的查询看起来更像:

Account.where(:field3.gte => 10)

注意在文档更改时更新 field3 的回调。还为其添加了索引。

关于mongodb - 大于两个字段之和的Mongoid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11982191/

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