$size(返回数组长度)

最后更新:2026-10-09

$size(返回数组长度)

$size 返回数组的元素个数,结果是非负整数。它是最常用的数组元数据操作符,典型场景包括统计订单商品数量、判断数组是否为空、或在 $match 里过滤长度达到阈值的文档(配合 $expr)。参数必须是数组,传字符串或数字会直接报错;字符串长度要用 $strLenCP。$size 不能用在 $match 的普通查询语法里,必须放进 $expr。

分类数组
MongoDB 版本1.0+
示例语言mongosh (Shell)

📝 语法

{ $size: <数组> }

⚙️ 参数

数组要计算长度的数组表达式。

返回值:数组元素个数(非负整数);参数不是数组时报错

▶ 示例

请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):

// $size:统计每个订单的商品数
db.orders.aggregate([
  { $project: {
      itemCount: { $size: '$items' }
  } }
])

运行结果:

{ '_id': 1, 'itemCount': 2 }
{ '_id': 2, 'itemCount': 5 }

📌 注意事项

更多实战案例即将上线,敬请期待。

📚 相关教程

❓ 常见问题

Q$size 能用在查询条件里吗?
A普通查询语法不行,要放进 $expr,如 { $expr: { $gt: [{ $size: '$tags' }, 2] } }。
Q字段不存在时 $size 会怎样?
A会报错。先 $ifNull 或 $cond 判断,缺失时按 0 处理。
Q$size 能数字符串长度吗?
A不能,字符串不是数组。字符串长度用 $strLenCP。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏