在MongoDB中存储二进制数据时,它在内部存储为二进制还是base64

时间:2018-09-11 22:37:05

标签: mongodb

如果我有以下课程(C#)

{
    byte[] somedata;
}

在MongoDB中,它是以二进制形式存储还是以Base64存储?

2 个答案:

答案 0 :(得分:1)

我有一个(Java)类,其中包含以下字段:

private String interactionInstanceId;
private String interactionId;
private String messageId;
private byte content[];

byte content[]字段在集合中另存为{ "$binary": "<bindata>", "$type": "00"}。 我认为C#没什么不同

<bindata>是“二进制字符串的base64表示形式”,据此:BSON Data Types and Associated Representations - Binary

我希望这对您有帮助

答案 1 :(得分:0)

与@ArielGro的回答相反,AFAICT MongoDB以二进制形式存储二进制数据。尽管the MongoDB doc提到了Base64字符串,但我认为这仅仅是关于数据的逻辑结构(以JSON文档的形式描述)。基于BSON spec和MongoDB在BSON中存储数据这一事实,我相信MongoDB以二进制形式存储二进制数据。

这并不是说大量二进制数据应直接存储在MongoDB文档中。但是对于少量数据,我认为这是合理的。