我有一个集合T,有两个字段:Grade1Grade2,我想 Select 那些有条件Grade1 > Grade2的字段,我怎样才能得到类似MySQL的查询?

Select * from T Where Grade1 > Grade2

推荐答案

你可以在哪里用美元.请注意,它会相当慢(必须在每条记录上执行Javascript代码),所以如果可以的话,请结合索引查询.

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

或者更紧凑:

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

mongodb版本3.6的UPD+

可以使用recent answer中描述的$expr

Mongodb相关问答推荐

MongoDB:子文档中仅存在于父文档中的返回字段?

Go mongo-驱动程序测试,FindOne未根据给定的筛选器返回正确结果

mongoose正在抛出Schema的错误has';t已在next.js中注册

spring-data-mongodb 上的 TopN 聚合

在延迟函数中重用 context.WithTimeout

更新 Mongodb 中的多嵌套数组

如何在 MongoDB 中存储时间?作为字符串?给出任意年/月/日?

声明多个模式后无法从数据库中获取数据(mongoose + express + mongodb

Mongo 无法启动

MongoDB 中 cursor.count() 和 cursor.size() 之间的区别

如何在 MongoDB 集合中查找与给定条件匹配的文档和单个子文档

.NET 中的 Mongodb 单元测试

在 Mongoose 中填写所有必填字段

文本的 MongoID 数据类型

我们如何使用spring boot为mongodb创建自动生成的字段

Mongodb 设计,嵌入与关系

如何在mongoDB中检索其值以特定字符结尾的文档

无法在 mac os 10.9 上安装 mongodb php 驱动程序

我如何将 mongodb 与electron一起使用?

将 FilterDefinition 转换为可以在 mongo shell 中运行的常规 json mongo 查询