mongodb - 返回所有 int 类型的年龄

标签 mongodb

我正在研究 Mongo 并试用它的功能。我有一个集合,其中包含带有姓名和年龄的文件。年龄通常是一个数字,但有时也可以是一个字符串,例如:

{
name: "example",
age: 20 
}

{
name: "exampleTwo",
age: "Not informed"
}

{
name: "exampleThree",
age: 21
}

我知道我可以而且可能应该为不知情的年龄插入默认数字,例如 -1 或 0,但我正在尝试和测试 mongo 功能。在这种情况下,同一集合中有不同类型的文档。

所以我想进行一个查询,返回所有年龄类型为数字的文档。对于这个具体示例,我知道我可以使用查询:

db.example.find({age: { $ne: "Not Informed" }})

但我想知道是否有可能进行一个不那么具体的查询,如前所述,一个返回所有年龄为数字的文档的查询?检查值的类型而不是值本身?

最佳答案

"Changed in version 3.2: $type operator accepts string aliases for the BSON types in addition to the numbers corresponding to the BSON types."

因此,这总是有效的:

db.example.find( { age : { $type : 16 } } )

这从 Mongo 3.2 开始有效:

db.example.find( { age : { $type : 'int' } } )

关于mongodb - 返回所有 int 类型的年龄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39532149/

相关文章:

ruby-on-rails - 在 Rails 3 中从 SQl 切换到 MongoDB

node.js - 如何在nodejs中比较两个日期

node.js - 如何将 JSON 表单数据转换为 mongoose 模式?

java - Morphia 映射泛型

MongoDB - 将 $ne 和 $in 与复合多键索引一起使用时不使用索引

python - Tensorflow 体育预测

javascript - 如何在node.js中访问整个应用程序中的数据库连接?

c# - MongoDB C#驱动多字段查询

javascript - 铁路由器: Meteor JS

php - 将 Mongodb 模块静态编译成 PHP 以在 AWS Lambda 上运行它