我正在拼命寻找使用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/

10-11 21:07
查看更多