$binarySize(二进制大小)
最后更新:2026-10-09
$binarySize(二进制大小)
$binarySize 返回二进制数据(BinData)的字节大小;传入字符串时返回其 UTF-8 字节长度。它常用于监控附件大小、限制上传体积或做存储统计。非二进制非字符串的输入会报错。注意字符串场景与 $strLenBytes 结果一致。空二进制返回 0。它不解析内容本身,只统计存储占用的字节数,开销很低。
| 分类 | 字符串 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
{ $binarySize: <表达式> }
⚙️ 参数
| 表达式 | 必填,二进制或字符串表达式。 |
|---|
返回值:字节大小(整数)。
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// $binarySize:统计附件大小
db.files.aggregate([
{ $project: { size: { $binarySize: '$data' } } }
])
运行结果:
{ "_id": 1, "size": 4096 }
{ "_id": 2, "size": 0 }
📌 注意事项
- BinData 返回字节数,字符串返回 UTF-8 字节数
- 其他类型(数字、文档)会报错
- 空二进制返回 0
🏷️ 相关标签
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
Q能传字符串吗?
A能,按 UTF-8 字节数计算。
Q传数字会怎样?
A报错,只接受二进制或字符串。
Q和 $strLenBytes 一样吗?
A传入字符串时结果一致;$binarySize 还能处理 BinData。