Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

$type (operador de expressão)

$type

Retorna uma string que especifica o tipo JSON do argumento.

$type has the following operator expression syntax:

{ $type: <expression> }

O argumento pode ser qualquer expressãoválida.

Dica

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:

Exemplo
Resultados

{ $type: "a" }

"string"

{ $type: /a/ }

"regex"

{ $type: 1 }

"double"

{ $type: Long(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.

JavaScript com escopo

15

"javascriptWithScope"

Obsoleto.

Inteiro de bits

16

"int"

Timestamp

17

" carimbo de data/hora "

Inteiro de 64 bits

18

"long"

Decimal128

19

"decimal"

Min key

-1

"minKey"

Tecla máxima

127

"maxKey"

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

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

db.coll.insertMany( [
{ _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 : Long(71) },
{ _id: 5, a : null },
{ _id: 6 }
] )

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" }
}
}])

As expressões não suportam o operador $exists. Para avaliar se um campo existe ou não em uma expressão, você pode utilizar o tipo missing.

A seguinte operação de agregação utiliza o tipo missing para adicionar um campo a a documentos da coleção coll acima que não possuem o campo a. Observe que um documento em que a: null não é o mesmo que um documento em que o campo a está ausente.

db.coll.aggregate([
{
$addFields: {
a: {
$cond: {
if: { $eq: [{ $type: "$a" }, "missing"] },
then: [],
else: "$a"
}
}
}
}
])
Avalie esta página