$strLenCP(码点长度)

最后更新:2026-10-09

$strLenCP(码点长度)

$strLenCP 返回字符串的 Unicode 码点数量,即人类感知的「字符数」。它对中文、日文、emoji 都按 1 计数,适合做昵称长度限制、文本摘要等业务逻辑。与按字节计数的 $strLenBytes 不同,多字节字符不影响结果。注意组合字符(如肤色修饰的 emoji)可能占多个码点。判断空字符串时,长度 0 即为空,可直接用于过滤条件。

分类字符串
MongoDB 版本1.0+
示例语言mongosh (Shell)

📝 语法

{ $strLenCP: <字符串表达式> }

⚙️ 参数

字符串必填,要计算长度的字符串表达式。

返回值:字符串的码点长度(字符数)整数。

▶ 示例

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

// $strLenCP:校验昵称长度
 db.users.aggregate([
  { $project: { len: { $strLenCP: '$nickname' } } }
])

运行结果:

{ "_id": 1, "len": 4 }
{ "_id": 2, "len": 2 }

📌 注意事项

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

📚 相关教程

❓ 常见问题

Q限制昵称 20 字用哪个?
A用 $strLenCP,它按字符计数。
Q和 $strLenBytes 结果差多少?
A中文每字差 2 个字节的差距。
Qemoji 算几个?
A简单 emoji 算 1,组合 emoji 可能算 2 个以上码点。
Web-Tutorial.com

Web-Tutorial 技术团队

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

100%

🙏 帮我们做得更好

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

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