我正在拼命寻找使用Java构建算术MongoDB查询的解决方案。例如,如何构建以下查询:
((test.value1 / test.value2) * 100) > 50
我已经尝试了以下查询,但没有成功:
{ {"$multiply" : [{"$divide" : ["$test.value1", "$test.value2"]}, "100"]} : {"$gt" : "50"}}
我不确定是否支持上述嵌套操作。在此先感谢您的任何建议!
最佳答案
Lycha的答案是正确的,$where
可能是进行此类即席查询的唯一方法。但是,它非常慢,并且不能使用索引。
如果您的表达式始终采用相同的形式(a / b > 50
),建议您在另一个字段中预先计算该除法的结果,对其进行索引,然后直接查询该字段。
如果您需要使用此类表达式执行许多不同的查询,那么有人会选择较差的数据库技术。
关于java - MongoDB:如何使用Java构建算术查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10626210/