Format Atlas

Comparar

BSON vs MessagePack

BSON e MessagePack representam dados binários parecidos com documentos, mas BSON é uma representação tipada associada ao MongoDB e MessagePack é uma serialização geral de objetos.

Qual formato você deve escolher?

Use BSON para documentos MongoDB e tipos específicos como ObjectId e datas. Considere MessagePack para troca compacta de objetos fora do MongoDB e combine tipos de extensão e suporte dos destinatários.

Indicado para BSON

Serializar documentos do MongoDB · Trocar documentos entre ferramentas compatíveis com BSON

  • Preservar tipos como datas e dados binários
  • Usar drivers e ferramentas que leem e gravam BSON

Indicado para MessagePack

Serializar dados semelhantes a JSON em binário · Trocar dados estruturados entre aplicativos compatíveis

  • Codificar em binário arrays, mapas e valores básicos semelhantes a JSON
  • Trocar extensões e timestamps entre bibliotecas compatíveis

Informações básicas

CampoBSONMessagePack
Extensão.bson.msgpack, .mpk
Tipo MIMEapplication/bsonapplication/octet-stream
Usos comunsSerializar documentos do MongoDB · Trocar documentos entre ferramentas compatíveis com BSONSerializar dados semelhantes a JSON em binário · Trocar dados estruturados entre aplicativos compatíveis
Como abrirLeia o arquivo com mongorestore ou uma ferramenta ou biblioteca compatível com BSON. Para inspecionar o conteúdo, converta-o para Extended JSON ou outra representação legível. Não edite o arquivo binário em um editor de texto.Leia com uma biblioteca ou decodificador compatível com MessagePack. Para inspecionar o conteúdo, use a notação de diagnóstico ou uma visualização semelhante a JSON e confira como dados binários e extensões são exibidos.
Exportar ou converterNa conversão para JSON, datas, ObjectId e valores binários podem exigir a notação Extended JSON ou uma representação própria do aplicativo, pois o JSON padrão não tem tipos correspondentes. Se precisar converter nos dois sentidos, escolha um método que preserve os tipos e teste com dados reais.Na conversão para JSON, dados binários e extensões podem exigir arrays, strings ou estruturas próprias, pois o JSON padrão não tem equivalentes diretos. Para converter nos dois sentidos, teste valores reais, limites numéricos, timestamps, chaves de mapas e tipos de extensão.

Escolha por finalidade

Preservar tipos como datas e dados binários

Serializar documentos do MongoDB · Trocar documentos entre ferramentas compatíveis com BSON

BSON

Usar drivers e ferramentas que leem e gravam BSON

Serializar documentos do MongoDB · Trocar documentos entre ferramentas compatíveis com BSON

BSON

Codificar em binário arrays, mapas e valores básicos semelhantes a JSON

Serializar dados semelhantes a JSON em binário · Trocar dados estruturados entre aplicativos compatíveis

MessagePack

Trocar extensões e timestamps entre bibliotecas compatíveis

Serializar dados semelhantes a JSON em binário · Trocar dados estruturados entre aplicativos compatíveis

MessagePack

Ponto principal 1

BSON define documentos e arrays com comprimento prefixado e tipos explícitos, como datas, ObjectId e Decimal128. MessagePack oferece mapas, arrays, números, texto, binário e extensões definidas pelo aplicativo.

Mais sobre as diferenças

Ponto principal 2

BSON se integra ao modelo de documentos e às ferramentas MongoDB; MessagePack serve à serialização geral sem exigir um banco de dados específico.

Mais sobre as diferenças

Mais sobre as diferenças

Escolha BSON quando os tipos de documento compatíveis com MongoDB forem importantes; escolha MessagePack para um protocolo binário independente de banco de dados. Mapeie datas, larguras inteiras, decimais, ObjectId e extensões e teste conversões de ida e volta.

  • Ambos usam codificações binárias, mas suas estruturas e sistemas de tipos diferem; nenhum pode ser lido diretamente como o outro.
  • BSON tem tipos e convenções específicos de documentos. No MessagePack, o aplicativo define o significado dos códigos de extensão.
  • A conversão pode alterar datas, intervalos numéricos, decimais ou semântica de identificadores. Documente os mapeamentos e valide valores no destinatário.

Perguntas frequentes

Posso apenas renomear um arquivo BSON para MessagePack?

Não. Mudar a extensão não converte a estrutura binária nem os tipos; decodifique e serialize com mapeamentos explícitos.

Saiba mais

Referências e especificações