$binarySize (Binary Size)
Last updated: 2026-10-09
$binarySize (Binary Size)
$binarySize returns the byte size of binary data (BinData); given a string it returns the UTF-8 byte length. It is used for attachment size monitoring, upload limits, or storage accounting. Inputs that are neither binary nor string throw. For strings the result matches $strLenBytes. An empty binary returns 0.
| Category | String |
|---|---|
| MongoDB Version | 1.0+ |
| Example Language | mongosh (Shell) |
📝 Syntax
{ $binarySize: <expression> }
⚙️ Parameters
| expression | Required; a binary or string expression. |
|---|
Returns:The size in bytes as an integer.
▶ Example
Run the commands below in your local mongosh (requires a running mongod):
// $binarySize: attachment sizes
db.files.aggregate([
{ $project: { size: { $binarySize: '$data' } } }
])
Output:
{ "_id": 1, "size": 4096 }
{ "_id": 2, "size": 0 }
📌 Notes
- BinData yields bytes; strings yield UTF-8 bytes
- Other types (numbers, documents) throw
- An empty binary returns 0
🏷️ Related Tags
💡 Related Cases
More hands-on cases coming soon.
📚 Related Tutorials
❓ FAQ
QCan strings be passed?
AYes — counted as UTF-8 bytes.
QWhat happens with a number?
AIt throws — only binary or string is accepted.
QIs it the same as $strLenBytes?
AIdentical for strings; $binarySize additionally handles BinData.