Docs 菜单

$type(聚合)

在此页面上

$type

版本 3.4 中的新增功能

Returns a string that specifies the BSON type of the argument.

$type 具有以下操作符表达式语法

{ $type: <expression> }

参数可以是任何有效表达式

提示

另请参阅:

Unlike the $type query operator, which matches array elements based on their BSON type, the $type aggregation operator does not examine array elements. Instead, when passed an array as its argument, the $type aggregation operator returns the type of the argument, i.e. "array".

If the argument is a field that is missing in the input document, $type returns the string "missing".

The following table shows the $type output for several common types of expressions:

例子
结果

{ $type: "a" }

"string"

{ $type: /a/ }

"regex"

{ $type: 1 }

"double"

{ $type: NumberLong(627) }

"long"

{ $type: { x: 1 } }

"object"

{ $type: [ [ 1, 2, 3 ] ] }

"array"

注意

In the case of a literal array such as [ 1, 2, 3 ], enclose the expression in an outer set of array brackets to prevent MongoDB from parsing [ 1, 2, 3 ] as an argument list with three arguments (1, 2, 3). Wrapping the array [ 1, 2, 3 ] in a $literal expression achieves the same result.

See operator expression syntax forms for more information.

类型
数值
别名
注意

double

1

"double"

字符串

2

"string"

对象

3

"object"

阵列

4

"array"

二进制数据

5

"binData"

未定义

6

"undefined"

已弃用。

ObjectId

7

"objectId"

布尔

8

"bool"

Date

9

"date"

null

10

"null"

正则表达式

11

"regex"

数据库指针

12

"dbPointer"

已弃用。

JavaScript

13

"javascript"

符号

14

"symbol"

已弃用。

32 位整数

16

"int"

时间戳

17

"timestamp"

64 位整型

18

"long"

Decimal128

19

"decimal"

Min key

-1

"minKey"

Max key

127

"maxKey"

If the argument is a field that is missing in the input document, $type returns the string "missing".

This example uses a 集合 named coll with the following 文档:

{ _id: 0, a : 8 }
{ _id: 1, a : [ 41.63, 88.19 ] }
{ _id: 2, a : { a : "apple", b : "banana", c: "carrot" } }
{ _id: 3, a : "caribou" }
{ _id: 4, a : NumberLong(71) }
{ _id: 5 }

The following aggregation operation uses the $type operator to display the type of field a for all documents as part of the $project stage.

db.coll.aggregate([{
$project: {
a : { $type: "$a" }
}
}])

该操作返回以下内容:

{ _id: 0, "a" : "double" }
{ _id: 1, "a" : "array" }
{ _id: 2, "a" : "object" }
{ _id: 3, "a" : "string" }
{ _id: 4, "a" : "long" }
{ _id: 5, "a" : "missing" }

在此页面上