Apidog

All-in-one Collaborative API Development Platform

Design de API

Documentação de API

Depuração de API

Mock de API

Testes Automatizados de API

Inscreva-se gratuitamente
Home / Ponto de vista / Tutorial de BSON do MongoDB: O que é BSON e como ele é diferente do JSON?

Tutorial de BSON do MongoDB: O que é BSON e como ele é diferente do JSON?

BSON (Binary JSON) é uma serialização binária de documentos semelhantes a JSON usada em bancos de dados MongoDB. Este artigo oferece uma visão geral do BSON, o formato de dados binário utilizado pelo MongoDB para armazenar documentos.

BSON (Binary JSON) é uma serialização codificada em binário de documentos semelhantes a JSON usados em bancos de dados MongoDB. Este artigo fornece uma visão geral do BSON, o formato de dados binários usado pelo MongoDB para armazenar documentos.

Ele explica o que é BSON, como ele estende as capacidades do JSON e as principais diferenças entre BSON e JSON. Além disso, inclui como Apidog lida com isso automaticamente. Ele também mostra exemplos de operações CRUD básicas e comandos de banco de dados usando Apidog para interagir com o MongoDB.

button

O que é BSON no MongoDB?

BSON (Binary JSON) é o formato de dados primário usado em bancos de dados MongoDB. Algumas coisas importantes a saber sobre BSON no MongoDB:

  • BSON é uma representação binária de documentos JSON. Ele estende o JSON com tipos de dados adicionais, como datas, timestamps, dados binários, etc.
  • O MongoDB armazena todos os dados internamente como BSON. Quando você insere um documento no MongoDB, ele é primeiro convertido em BSON antes de ser gravado no disco.
  • BSON codifica informações de tipo e comprimento, permitindo que o MongoDB escaneie e percorra documentos de forma eficiente sem examinar e interpretar cada um. Isso melhora o desempenho.
  • BSON é projetado para ser leve, percorrível e eficiente para codificação/decodificação. Isso o torna bem adequado como um formato de armazenamento e intercâmbio de dados para o MongoDB.
  • A extensão de arquivo padrão para arquivos BSON é .bson. Ferramentas do Mongo, como Mongoexport, podem ser usadas para exportar dados do MongoDB para BSON para backups ou migrações.
  • BSON é projetado para ser altamente percorrível. Consultas do MongoDB utilizam índices para localizar e recuperar rapidamente resultados sem escanear cada documento.

Estrutura de um Documento BSON

BSON (Binary JSON) é uma serialização codificada em binário de documentos semelhantes a JSON usados em bancos de dados MongoDB. Um documento BSON contém pares de campo-valor ordenados, semelhantes a objetos JSON.

Os campos podem ser quaisquer strings UTF-8 válidas, enquanto os valores podem ser um dos vários tipos de dados BSON, como string, inteiro, double, dados binários, array, documento, booleano, data, nulo, etc. A estrutura de um documento BSON começa com um inteiro de 4 bytes indicando o tamanho total do documento.

Em seguida, há um par de campo-valor contendo o campo "_id", que identifica exclusivamente o documento. O conteúdo do documento segue com cada par de campo-valor codificado em um formato binário específico com base no tipo de dado.

Um exemplo mostrando a estrutura de um documento BSON:

// Documento BSON de exemplo
{
  _id: ObjectId("507f1f77bcf86cd799439011"), // ID único de 12 bytes
  name: "John Doe", // String
  age: 35, // Inteiro
  address: { // Documento embutido
    street: "123 Main St",
    city: "Anytown", 
    state: "CA"
  },
  hobbies: ["reading", "hiking","swimming"], // Array
  graduated: true, // Booleano
  birthday: ISODate("1980-05-15T00:00:00Z"), // Data
  data: BinData(0, "SGVsbG8gV29ybGQ="), // Dados binários
  ts: Timestamp(1590583045633, 1) // Timestamp
}

Coisas importantes a notar:

  • O campo _id identifica exclusivamente o documento
  • Os pares de campo-valor têm uma ordem definida
  • Suporta tipos de dados extras como ISODate, ObjectId, etc.
  • Pode embutir documentos e arrays
  • Dados binários armazenados de forma eficiente

Qual é a diferença entre JSON e BSON?

Aqui estão as principais diferenças entre JSON e BSON:

  • Codificação: JSON é baseado em texto e codificado em UTF-8, enquanto BSON é codificado em binário.
  • Tipos de dados: JSON suporta tipos de dados limitados como strings, números, booleanos, arrays e objetos. BSON suporta tipos adicionais, como datas, dados binários, expressões regulares, etc.
  • Eficiência: A codificação binária BSON permite um armazenamento e busca de dados mais eficientes em comparação com JSON. Documentos BSON têm um prefixo de comprimento e não contêm espaços em branco, permitindo que sejam analisados mais rapidamente.
  • Ordenação: Os pares de campo-valor em documentos BSON são ordenados, permitindo uma travessia e indexação eficientes. Objetos JSON não têm garantias de ordenação.
  • Flexibilidade: BSON fornece alguma flexibilidade sobre JSON, como permitir que nomes de campos contenham caracteres especiais e Unicode.
  • Uso: JSON é um formato geral utilizado amplamente na web e em aplicações. BSON é usado especificamente em bancos de dados MongoDB como a principal representação de dados.
  • Esquema: JSON não tem esquema por padrão, enquanto o MongoDB permite aplicar esquemas para documentos BSON através de regras de validação.
  • Valores nulos: JSON tem um único valor nulo. BSON distingue entre nulos e campos ausentes.

Conversão JSON e BSON no MongoDB com Apidog

Apidog é um kit de ferramentas de API que simplifica o desenvolvimento de APIs. Ele oferece o MongoDB como uma de suas opções de banco de dados integradas. Ao usar o MongoDB com Apidog, você pode armazenar mocks e testes de API no MongoDB como o backend.

As respostas de API mockadas fornecidas pelo Apidog podem ser impulsionadas por dados armazenados em um banco de dados MongoDB. Isso permite que o Apidog utilize o MongoDB como a fonte de dados persistente para APIs mockadas. Em seguida, explicaremos a relação entre JSON e BSON com você.

button

O MongoDB armazena dados como documentos BSON, que podem ser vistos como um superconjunto do JSON. Ao operar o banco de dados MongoDB com Apidog, o JSON é usado para compor o conteúdo. O Apidog irá automaticamente mapear cada campo para o tipo de dado BSON correspondente com base no conteúdo JSON real.

Um caso especial é o campo _id. De acordo com as convenções do MongoDB, cada documento deve ter um campo _id como a chave primária, com ObjectId como o tipo de dado padrão em vez de string.

Com o Apidog, para declarar um campo _id do tipo ObjectId, use o formato de string comum. Se o conteúdo da string estiver em conformidade com o formato ObjectId, o Apidog irá automaticamente mapear para o tipo ObjectId do BSON.

Por exemplo, no MongoDB há um documento BSON como:

Copy code
{
    _id: ObjectId('654e056de3662b1c09477cc3
'),
    name: "Apidog"
}

Então, para consultar este documento pelo _id com Apidog, o JSON a ser colocado na "Condição de Consulta" seria:

Copy code
{
    "_id": "654e056de3662b1c09477cc3"
}
MongoDB

Junte-se à Newsletter da Apidog

Inscreva-se para ficar atualizado e receber os últimos pontos de vista a qualquer momento.