Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

$type (agregação)

Nesta página

  • Definição
  • Comportamento
  • Exemplo
$type

Novidade na versão 3.4.

Retorna uma string que especifica o tipo BSON do argumento.

$type tem a seguinte sintaxe de expressão do operador:

{ $type: <expression> }

O argumento pode ser qualquer expressãoválida.

Dica

Veja também:

  • $isNumber - verifica se o argumento é um número.

  • $type (Query) - filtra campos com base no tipo BSON.

Ao contrário do operador de query $type, que corresponde a elementos de array com base em seu tipo BSON, o operador de agregação $type não examina elementos de array. Em vez disso, quando uma array é passada como seu argumento, o operador de agregação $type retorna o tipo do argumento, ou seja, "array".

Se o argumento for um campo ausente no documento de entrada, $type retornará a string "missing".

A tabela a seguir mostra a saída $type para vários tipos comuns de expressões:

Exemplo
Resultados
{ $type: "a" }
"string"
{ $type: /a/ }
"regex"
{ $type: 1 }
"double"
{ $type: NumberLong(627) }
"long"
{ $type: { x: 1 } }
"object"
{ $type: [ [ 1, 2, 3 ] ] }
"array"

Observação

No caso de uma array literal, como [ 1, 2, 3 ], coloque a expressão em um conjunto externo de colchetes para evitar que o MongoDB analise [ 1, 2, 3 ] como uma lista de argumentos com três argumentos (1, 2, 3). Agrupar a array [ 1, 2, 3 ] em uma expressão $literal obtém o mesmo resultado.

Consulte Formulários de sintaxe de expressão do operador para mais informações.

Tipo
Número
Alias
Notas
Double
1
"double"
String
2
"string"
Objeto
3
"objeto"
Array
4
"array"
Dados binários
5
"binData"
Indefinido
6
" indefinido "
Obsoleto.
ObjectId
7
"objectId"
Boolean
8
"bool"
Data
9
"data"
Zero
10
"nulo"
Expressão regular
11
"regex"
DBPointer
12
"dbPointer"
Obsoleto.
JavaScript
13
"javascript"
Símbolo
14
"símbolo"
Obsoleto.
Inteiro de bits
16
"int"
Timestamp
17
" carimbo de data/hora "
Inteiro de 64 bits
18
"longo"
Decimal128
19
"decimal"
Chave mín.
-1
"minKey"
Tecla máxima
127
"maxKey"

Se o argumento for um campo ausente no documento de entrada, $type retornará a string "missing".

Este exemplo utiliza uma coleção denominada coll com os seguintes documentos:

{ _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 }

A seguinte operação de agregação utiliza o operador $type para exibir o tipo de campo a para todos os documentos como parte do estágio $project.

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

A operação retorna o seguinte:

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

Voltar

$trunc

Próximo

$unsetField