Apidog

Plataforma Colaborativa All-in-one para Desenvolvimento de API

Design de API

Documentação de API

Depuração de API

Mock de API

Testes Automatizados de API

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.

Miguel Oliveira

Miguel Oliveira

Updated on novembro 29, 2024

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
Qual é o Melhor IDE de IA? Windsurf vs Cursor vs Cline vs GitHub CopilotPonto de vista

Qual é o Melhor IDE de IA? Windsurf vs Cursor vs Cline vs GitHub Copilot

Oi, pessoal! Se você é como eu, provavelmente passou horas navegando em fóruns, tentando descobrir qual IDE com suporte a IA é o negócio de verdade. Com ferramentas como Windsurf, Cursor, Cline e GitHub Copilot dominando a cena, é fácil se sentir sobrecarregado. Mas não se preocupe—estou aqui para ajudar! Neste post do blog, vamos nos aprofundar nesses quatro IDEs com IA, comparando seus recursos, preços e desempenho. Se você é um desenvolvedor solo, faz parte de uma equipe ou está apenas começ

@apidog

março 6, 2025

Top 17 Empresas de IA Oferecendo API de LLM em 2025Ponto de vista

Top 17 Empresas de IA Oferecendo API de LLM em 2025

Os Modelos de Linguagem Grande (LLMs) emergiram como uma força transformadora no mundo da inteligência artificial, permitindo que as máquinas compreendam e gerem a linguagem humana de maneiras cada vez mais sofisticadas. Com a ascensão das APIs, os desenvolvedores agora podem integrar esses poderosos modelos em uma ampla gama de aplicações, desde chatbots até geração de conteúdo, tradução de idiomas e muito mais. Neste blog, faremos uma análise aprofundada das 17 principais empresas de IA que a

@apidog

fevereiro 25, 2025

Principais 5 recursos do Apidog que se destacam em relação ao PostmanPonto de vista

Principais 5 recursos do Apidog que se destacam em relação ao Postman

Descubra por que o Apidog supera o Postman no desenvolvimento de APIs. Conheça as ferramentas de colaboração superiores do Apidog, testes automatizados, documentação aprimorada e mais. Perfeito para equipes que buscam otimizar seu fluxo de trabalho em APIs.

Miguel Oliveira

agosto 12, 2024