$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 : 4readings