1

私は、Javaを使用して算術MongoDBクエリを構築するソリューションを必死に探しています。たとえば、次のクエリを作成するにはどうすればよいですか。

((test.value1 / test.value2) * 100) > 50 

うまくいかなかった次のクエリを試しました:

{ {"$multiply" : [{"$divide" : ["$test.value1", "$test.value2"]}, "100"]} : {"$gt" : "50"}} 

上記のようなネストされた算術演算がサポートされているかどうかはわかりません。提案を事前に感謝します!!!

4

2 に答える 2

2

Lychaの答えは正しいです$whereが、おそらくそのようなアドホッククエリを作成する唯一の方法です。ただし、非常に遅く、インデックスを使用できません。

式が常に同じ形式(a / b > 50)である場合は、別のフィールドでその除算の結果を事前に計算し、インデックスを付けてから、このフィールドに直接クエリを実行することをお勧めします。

このような式を使用してさまざまなクエリを実行する必要がある場合は、誰かがDBテクノロジを適切に選択していません。

于 2012-05-17T06:07:06.670 に答える
1

Javascript で条件を指定できる$where 演算子を試すことができます。

例:

{ $where: "this.value1/this.value2 > 50" }
于 2012-05-16T21:32:22.697 に答える