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
| Campo | BSON | MessagePack |
|---|---|---|
| Extensão | .bson | .msgpack, .mpk |
| Tipo MIME | application/bson | application/octet-stream |
| Usos comuns | Serializar documentos do MongoDB · Trocar documentos entre ferramentas compatíveis com BSON | Serializar dados semelhantes a JSON em binário · Trocar dados estruturados entre aplicativos compatíveis |
| Como abrir | Leia 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 converter | Na 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
BSONUsar drivers e ferramentas que leem e gravam BSON
Serializar documentos do MongoDB · Trocar documentos entre ferramentas compatíveis com BSON
BSONCodificar 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
MessagePackTrocar extensões e timestamps entre bibliotecas compatíveis
Serializar dados semelhantes a JSON em binário · Trocar dados estruturados entre aplicativos compatíveis
MessagePackPonto 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çasPonto 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çasMais 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.