$type 操作符

$type 操作符

$type 操作符是基于 BSON 类型来检索集合中匹配的数据类型,并返回结果。

常用 BSON 类型对照表

类型数字备注
Double1
String2
Object3
Array4
Binary data5
Undefined6已废弃
ObjectId7
Boolean8
Date9
Null10
Regular Expression11
JavaScript13
Symbol14
JavaScript (with scope)15
32-bit integer16
Timestamp17
64-bit integer18
Min key255Query with -1
Max key127

示例

如果想获取 “persons” 集合中 name 为 String 类型的数据,可以使用以下命令:

db.persons.find({"name" : {$type : 2}})Code language: PHP (php)

db.persons.find({"name" : {$type : 'string'}})Code language: PHP (php)

测试数据

db.persons.insert({name:123,age:22})
db.persons.insert({name:456,age:42})
db.persons.find()
db.persons.find({name:123})
db.persons.find({name:'张三'})
db.persons.find({name:{$type:'string'}})
db.persons.find({name:{$type: 1}})Code language: CSS (css)

补充说明

  • $type 可以用数字编号或字符串别名来指定类型,效果相同
  • 字符串别名写法可读性更好,推荐使用
  • 同一个集合中不同文档的同一个字段可以是不同类型,这是 MongoDB 灵活性的体现
  • $type 查询时只会匹配指定类型的文档,其他类型的文档会被过滤掉
  • 上例中 $type: 1 匹配 Double 类型,所以 name 为数字的文档会被查出来

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注