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



如果我有以下类 (C#(

{
byte[] somedata;
}

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

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

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

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

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

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

<bindata>是"二进制字符串的base64表示",根据以下内容:BSON数据类型和相关表示 - 二进制

我希望这有帮助

最新更新