$binarySize聚合运算符返回给定字符串或二进制数据的字节数。
语法
{
$binarySize: <string or binData> }
使用
<string or bindData>可以是任何能够被解析为字符串和二进制数据的表达式;如果表达式解析为null,则$binarySize也返回null;如果表示解析为其他数据类型的值则报错。
当参数为字符串类型时,$binarySize运算符采用UTF-8编码字节对字符串进行统计,单个字符长度可能为1到4个字节。
例如,US-ASCII 字符用一个字节编码。带有变音标记的字符和其他拉丁字母字符(即英文字母以外的拉丁字符)使用两个字节编码。中文、日文和韩文字符通常需要三个字节,其他统一码平面(表情符号、数学符号等)需要四个字节。如下表:
| 表达式 | 长度 | 说明 |
|---|---|---|
{ $binarySize: "abcde" } |
5 | 每个字符占用1字节 |
{ $binarySize: "Hello World!" } |
每个字符占用1字节 | |
{ $binarySize: "cafeteria" } |
9 | 每个字符占用1字节 |
{ $binarySize: "cafétéria" } |
11 | é字符占用2字节 |
{ $binarySize: "" } |
0 | 空字符串返回0 |
{ $binarySize: "$€λG" } |
7 | €占用3字节,λ占用2字节 |
{ $binarySize: "寿司" } |
6 | 每个字符占用3字节 |
举例
使用下面的命令创建images集合:
db.images.insertMany([
{
_id: 1, name: "cat.jpg", binary: new BinData(0, "OEJTfmD8twzaj/LPKLIVkA==")},
{
_id: 2, name: "big_ben.jpg", binary: new BinData(0, "aGVsZmRqYWZqYmxhaGJsYXJnYWZkYXJlcTU1NDE1Z2FmZCBmZGFmZGE=")},

本文介绍了MongoDB中$binarySize聚合运算符的使用方法,用于计算字符串或二进制数据的字节数,以及在聚合管道中的应用,如统计文档中二进制字段的长度和查找最大值。
最低0.47元/天 解锁文章
1397

被折叠的 条评论
为什么被折叠?



