1. ホーム
  2. mongodb

[解決済み] MongoDb の 2 つのフィールドを比較するクエリ条件

2022-06-30 20:18:32

質問

私は、コレクション T があり、2つのフィールドがあります。 Grade1Grade2 で、これらを条件付きで選択したい。 Grade1 > Grade2 という条件で選択したいのですが、MySQLのようなクエリを取得するにはどうしたらよいでしょうか?

Select * from T Where Grade1 > Grade2

どのように解決するのですか?

whereを使用することができます。ただ、かなり遅くなる(すべてのレコードでJavascriptのコードを実行しなければならない)ので、可能であればインデックス付きのクエリと組み合わせることを意識してください。

db.T.find( { $where: function() { return this.Grade1 > this.Grade2 } } );

とか、もっとコンパクトに

db.T.find( { $where : "this.Grade1 > this.Grade2" } );

mongodb v.3.6+用にUPD。

を使うことができます。 $expr で説明したように 最近の回答