我有一个集合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的UPD v.3.6 +

您可以按照recent answer中的说明使用$expr

10-08 03:46