Menu Docs
Página inicial do Docs
/ /
Serviços Atlas App
/

Data Formats

Nesta página

  • JSON padrão (aplicativo/json)
  • EJSON canônico e relaxado (aplicativo/ejson)
  • Tipos de JSON
  • Array
  • Binário
  • Data
  • Decimal128
  • Documento
  • Double
  • Int32
  • Int64
  • Tecla máxima
  • Chave mín.
  • ObjectId
  • Expressão regular
  • Timestamp

O MongoDB armazena dados em um formato chamado BSON, que é semelhante a um objeto JSON em estrutura, mas oferece suporte a tipos de dados adicionais e usa uma codificação binária. O BSON é eficiente para computadores, mas não é legível por humanos, portanto você não pode trabalhar diretamente com ele.

Em vez disso, o Data API usa dois formatos para representar dados em solicitações e respostas: JSON e EJSON.

Você define um único tipo de retorno padrão para todos os endpoints da Data API gerados e individualmente para cada endpoint personalizado. As solicitações de entrada também podem especificar um formato de dados preferencial que substitui o padrão usando um cabeçalho Accept .

Exemplo

Este documento pode ser representado em JSON ou EJSON, mostra tipos de JSON representados em JSON e EJSON:

{
"Name": "Mango",
"Year": { "$numberLong": "2022" },
"Weight": { "$numberDecimal": "9823.1297" },
"Date": { "$date": { "$numberLong": "1641954803067" } }
}
{
"Name": "Mango",
"Year": 2022,
"Weight": "9823.1297",
"Date": "2022-01-12T02:33:23.067Z"
}

Você define um único tipo de retorno padrão para todos os endpoints da Data API gerados e individualmente para cada endpoint personalizado. As solicitações de entrada também podem especificar um formato de dados de preferência que substitui o padrão usando um cabeçalho Accept .

O formato JSON usa tipos padrão que qualquer ferramenta pode analisar e compreender. No entanto, o JSON não pode representar todos os BSON types, portanto, as respostas do JSON podem perder informações de tipo para alguns campo. Por exemplo, o BSON tem tipos distintos para números inteiros de 32 bits e flutuantes de 64 bits, mas uma resposta JSON representa ambos como um number.

O formato EJSON , abreviação de MongoDB Extended JSON, é um superconjunto de JSON padrão que usa campos estruturados para representar dados BSON que não têm tipos de JSON correspondentes. Isso representa totalmente seus dados, mas exige que seu cliente entenda como trabalhar com o EJSON.

Existem duas variantes do EJSON:

  • O canônico EJSON usa uma estrutura detalhada que enfatiza a preservação do tipo às custas de legibilidade e interoperabilidade. Ela representa totalmente BSON types, mas talvez seja necessário usar uma biblioteca ou um código personalizado para trabalhar com ela.

  • Relaxed EJSON usa uma estrutura mais compacta que é mais fácil de ler e trabalhar, mas pode perder informações de tipo para alguns BSON types. Por exemplo, um campo de número em um documento inserido pode ser inferido como um tipo de BSON numérico diferente do que o esperado.

Você pode usar EJSON canônico ou relaxado em corpos de solicitação. Os pontos de conexão da Data API configurados para retornar EJSON sempre retornam EJSON canônico.

Esta seções lista os BSON types compatíveis com a Data API e mostra como cada tipo é representado no formato JSON e EJSON.

EJSON
JSON

EJSON canônico

[ <elements> ]

EJSON descontraído

Igual à Canônica

[ <elements> ]
EJSON
JSON

EJSON canônico

{
"$binary": {
"base64": "e67803a39588be8a95731a21e27d7391",
"subType": "05"
}
}

EJSON descontraído

Igual à Canônica

{
"Subtype": 5,
"Data": "e67803a39588be8a95731a21e27d7391"
}
EJSON
JSON

EJSON canônico

{
"$date": {
"$numberLong": "1641954803067"
}
}

EJSON descontraído

{
"$date": "2022-01-12T02:33:23.067Z"
}
"2022-01-12T02:33:23.067Z"
EJSON
JSON

EJSON canônico

{ "$numberDecimal": "9823.1297" }

EJSON descontraído

Igual à Canônica

"9823.1297"
EJSON
JSON

EJSON canônico

{ <content> }

EJSON descontraído

Igual à Canônica

{ <content> }
EJSON
JSON

EJSON canônico

{ "$numberDouble": "10.5" }

EJSON descontraído

10.5
10.5
EJSON
JSON

EJSON canônico

{ "$numberInt": "10" }

EJSON descontraído

10
10
EJSON
JSON

EJSON canônico

{ "$numberLong": "50" }

EJSON descontraído

Igual à Canônica

50
EJSON
JSON

EJSON canônico

{ "$maxKey": 1 }

EJSON descontraído

Igual à Canônica

{}

Nenhum equivalente de JSON

EJSON
JSON

EJSON canônico

{ "$minKey": 1 }

EJSON descontraído

Igual à Canônica

{}

Nenhum equivalente de JSON

EJSON
JSON

EJSON canônico

{ "$oid":"5d505646cf6d4fe581014ab2" }

EJSON descontraído

Igual à Canônica

"5d505646cf6d4fe581014ab2"
EJSON
JSON

EJSON canônico

{
"$regularExpression": {
"pattern":"^H",
"options":"i"
}
}

EJSON descontraído

Igual à Canônica

{
"Pattern": "^H",
"Options": "i"
}
EJSON
JSON

EJSON canônico

{
"$timestamp": {
"t":1565545664,
"i":1
}
}

EJSON descontraído

Igual à Canônica

{
"T": 1565545664,
"I": 1
}

Voltar

Autenticar solicitações de API de dados