猿问

比较两个字段的MongoDB查询条件

比较两个字段的MongoDB查询条件

我有收藏T,有两个字段:Grade1Grade2,我想选择那些有条件的Grade1 > Grade2,如何获得类似MySQL的查询?

Select * from T Where Grade1 > Grade2


繁星coding
浏览 4377回答 3
3回答

蛊毒传说

你可以用$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+你可以用$expr如上文所述最近的回答

HUX布斯

你可以用$费用(3.6 mongo版本操作符)在常规查询中使用聚合函数。比较query operatorsVSaggregation comparison operators.常规查询:db.T.find({$expr:{$gt:["$Grade1", "$Grade2"]}})聚合查询:db.T.aggregate({$match:{$expr:{$gt:["$Grade1", "$Grade2"]}}})
随时随地看视频慕课网APP

相关分类

MongoDB
我要回答