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