网站建设模板html,做网站用什么代码编写,沧州网络营销推广方案,十大app软件下载入口$binarySize聚合运算符返回给定字符串或二进制数据的字节数。
语法
{ $binarySize: string or binData }使用
string or bindData可以是任何能够被解析为字符串和二进制数据的表达式#xff1b;如果表达式解析为null#xff0c;则$binarySize也返回nullstring 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)},{ _id: 3, name: tea_set.jpg, binary: new BinData(0, MyIRAFVEd2aImaq7zN3u/w)},{ _id: 4, name: concert.jpg, binary: new BinData(0, TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4)},{ _id: 5, name: empty.jpg, binary: new BinData(0, ) }
])统计二进制字段长度
下面的聚合命令使用$project对集合文档进行重塑输出name字段并使用$binarySize返回文档中binary字段的字节数操作返回下面的结果
{ _id : 1, name : cat.jpg, imageSize : 16 }
{ _id : 2, name : big_ben.jpg, imageSize : 41 }
{ _id : 3, name : teaset.jpg, imageSize : 16 }
{ _id : 4, name : concert.jpg, imageSize : 269 }
{ _id : 5, name : empty.jpg, imageSize : 0 }查找最大的二进制字段
下面的聚合操作返回二进制字段最大的图片
db.images.aggregate([// 阶段1{ $project: { name: $name, imageSize: { $binarySize: $binary } } },// 阶段2{ $sort: { imageSize : -1 } },// 阶段3{ $limit: 1 }
])阶段1
使用$project阶段和$binarySize运算符输出文件名name和图片大小imageSize字段
{ _id : 1, name : cat.jpg, imageSize : 16 }
{ _id : 2, name : big_ben.jpg, imageSize : 41 }
{ _id : 3, name : teaset.jpg, imageSize : 16 }
{ _id : 4, name : concert.jpg, imageSize : 269 }
{ _id : 5, name : empty.jpg, imageSize : 0 }阶段2
使用$sort按照imageSize对文档由大到小进行排序
{ _id : 4, name : concert.jpg, imageSize : 269 }
{ _id : 2, name : big_ben.jpg, imageSize : 41 }
{ _id : 1, name : cat.jpg, imageSize : 16 }
{ _id : 3, name : teaset.jpg, imageSize : 16 }
{ _id : 5, name : empty.jpg, imageSize : 0 }阶段3
使用limit只输出排序后第一个文档的内容
{ _id : 4, name : concert.jpg, imageSize : 269 }