java - MongoDB:如何使用 Java 构建算术查询

标签 java json mongodb arithmetic-expressions

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

相关文章:

node.js - 这是在 mongodb 中创建自动增量的正确原因吗?

java - 如何在 IntelliJ 中停止通配符 Java 包导入

java - 从 Collection 到 SortedSet

java - 我可以从 java 程序更改 linux 中的用户密码吗?

javascript - 如果与提供的 id 匹配,如何从对象数组中获取 slug 值?

node.js - 如何在 mongodb 中设置整数的默认值?

java - 在 mongodb 中更新嵌套的嵌入式文档

java - 应用程序在蓝牙发现期间崩溃

json - ASP.NET MVC - 使用 ViewData 将 Json 字符串传递给 View

javascript - 来自 json 数组的 c3js 堆积条形图