$type
返回BSON类型field
与传递给的BSON类型匹配的文档$type
。
在MongoDB 3.6和更高版本中,查询返回的文档中字段本身是数组。在MongoDB 3.6之前的版本中,
返回的文档中的字段是一个包含至少一个type类型元素的数组。例如,给定以下文件:$type: "array"
$type: "array"
array
在MongoDB 3.6和更高版本中,查询
将返回两个文档。在MongoDB 3.6之前,查询仅返回第一个文档。find( {"data" : { $type : "array" } } )
从MongoDB 3.2开始,$type
操作员除了接受与BSON类型相对应的数字外,还接受BSON类型的字符串别名。以前的版本仅接受与BSON类型相对应的数字。[1]
类型 | 数 | 别名 | 笔记 |
---|---|---|---|
双 | 1个 | “双” | |
串 | 2 | “串” | |
宾语 | 3 | “宾语” | |
数组 | 4 | “数组” | |
二进制数据 | 5 | “ binData” | |
未定义 | 6 | “未定义” | 不推荐使用。 |
对象编号 | 7 | “ objectId” | |
布尔型 | 8 | “布尔” | |
日期 | 9 | “日期” | |
空值 | 10 | “空值” | |
正则表达式 | 11 | “正则表达式” | |
DBPointer | 12 | “ dbPointer” | 不推荐使用。 |
的JavaScript | 13 | “ javascript” | |
符号 | 14 | “符号” | 不推荐使用。 |
JavaScript(带作用域) | 15 | “ javascriptWithScope” | |
32位整数 | 16 | “ int” | |
时间戳记 | 17 | “时间戳” | |
64位整数 | 18岁 | “长” | |
小数128 | 19 | “十进制” | 3.4版的新功能。 |
最小键 | -1 | “ minKey” | |
最大键 | 127 | “ maxKey” |
$type
支持number
别名,它将与以下BSON类型匹配:
有关示例,请参见示例。
[1] | 从MongoDB 4.2开始,用户不再可以将查询过滤器
用作的同义词
。要查询空字段或缺少字段,请参阅
查询空字段或缺少字段。$type: 0 $exists:false |
在addressBook
包含地址和邮编,在那里
zipCode
有string
,int
,double
,和long
值:
以下查询返回的所有文件,其中zipCode
是
BSON类型string
或为含有指定的类型的元素的数组:
这些查询返回:
以下查询返回的所有文件,其中zipCode
是
BSON类型double
或为含有指定的类型的元素的数组:
这些查询返回:
以下查询使用的number
别名返回文档,其中
zipCode
是BSON类型double
,int
或long
或者是包含指定类型的元素的数组:
这些查询返回:
该grades
集合包含名称和平均数,其中
classAverage
有string
,int
和double
值:
以下查询返回的所有文件,其中classAverage
是
BSON类型string
或double
或为含有指定类型的元件的阵列。第一个查询使用数字别名,而第二个查询使用字符串别名。
这些查询返回以下文档:
该restaurants
集合使用minKey
任何等级是不及格:
而maxKey
对于任何级别是最高的及格分数:
以下查询返回其grades.grade
字段包含minKey
或为包含指定类型的元素的数组的任何餐厅:
这返回
以下查询返回其grades.grade
字段包含maxKey
或为包含指定类型的元素的数组的任何餐厅:
这返回
名为的集合SensorReading
包含以下文档:
以下查询返回readings
字段为空或非空数组的任何文档。
上面的查询返回以下文档:
与文件,,,和
,该字段是一个数组。_id : 1
_id : 2
_id : 3
_id : 4
readings