当我有两个像这样的MongoDB文档时...

db.test.insert( {"value" : "10123"} );
db.test.insert( {"value" : "160"} );

查询的结果如下:

db.test.find({"value" :{$gt : "12"} });

{ "_id" : ObjectId("4c6d1b92304326161b678b89"), "value" : "160" }

很明显,会进行字符串比较,因此不会返回我的第一个值.

比如:

db.test.find({ (int) "value" :{$gt : 12} });

那太好了.像这样的问题

db.test.find({"value" :{$gt : 12} }); // without the quotes around "12"

不返回任何内容.

推荐答案

您可以使用以下JavaScript expression个选项:

db.test.find("this.value > 12")

这使用JavaScript从字符串到数字的自动转换.

Mongodb相关问答推荐

MongoDB聚合如何对对象数组中的值求和

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

聚合管道可以用于更新数据库中的文档吗?

MongoDB - 将数组元素转换为新字段

Mongo查找条件:不存在

从具有多个数组匹配 MongoDB 的两个集合中采样数据

MongoDB shell:如何删除列表以外的所有集合

在mongodb中,如何使用聚合来获取字段之间的对应关系

MongoDB:使用数组过滤器进行更新插入

如何在mongoDB中按嵌套文档分组( group by )

MongoDB查询仅返回嵌入文档

Docker 内部的 Mongo 身份验证

Clojure 和 NoSQL 数据库

Python - Pymongo 插入和更新文档

一起使用 MongoDB 和 Neo4j

try 启用 Mongo DB 身份验证时发生 TypeError

从 nodejs 到 mongodb 或 mongoose 的动态数据库连接

在 mongoose 中使用 UUID 进行 ObjectID 引用

错误:需要数据和盐参数

我可以使用字符串作为 mongodb 文档的 ID 类型吗?