Binary(二进制数据)
最后更新:2026-10-09
Binary(二进制数据)
Binary类型存储图片、文件、加密数据、UUID等非文本数据,比Base64字符串省空间且支持子类型(subtype:0通用、2旧格式、3 UUID、4 UUID新、7加密)。单文档16MB上限内可直接存;大文件用GridFS。mongosh中构造用`BinData(子类型, 'base64')`或`Binary.createFromBase64('...')`。
| 分类 | BSON 类型 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
BinData(<子类型>, "<base64>")
UUID("<uuid字符串>")
Binary.createFromBase64("<base64>")
返回值:返回一个Binary类型的BSON值
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// Binary:存储二进制数据
use shop
db.files.insertOne({ name: 'logo.png', data: BinData(0, 'iVBORw0KGgo=') })
运行结果:
{ _id: ObjectId('...'), name: 'logo.png', data: Binary.createFromBase64('iVBORw0KGgo=') }
📌 注意事项
- 大文件用GridFS,别塞进文档(16MB上限)
- UUID用子类型4存储,跨驱动保持一致
- Base64字符串比Binary多约33%存储
🏷️ 相关标签
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
Q图片能直接存MongoDB吗?
A16MB以下可用Binary字段;更大的用GridFS或对象存储。
QUUID在MongoDB里怎么存?
A用Binary子类型4(UUID),驱动会自动转换。
QBinary和Base64字符串选哪个?
A二进制数据用Binary,省空间且支持子类型;纯文本用String。