如何在MongoDB的聚合$project阶段实现字符串首字母大写?
解决MongoDB聚合中首字母大写其余小写的字段转换问题
现有MongoDB文档:
{ name: "BRIAN" }
目标格式:
{ name: "Brian" }
你之前尝试的聚合操作仅能将字符串转为全小写:
{ $project: { name: { $concat: [ { $toLower: '$name' } ]} } }
可以在同一个$project阶段完成首字母大写、其余小写的转换,通过MongoDB字符串操作符组合实现:
{ $project: { name: { $concat: [ { $toUpper: { $substrCP: ["$name", 0, 1] } }, { $toLower: { $substrCP: ["$name", 1, { $strLenCP: "$name" }] } } ] } } }
代码说明:
$substrCP: ["$name", 0, 1]:提取字符串的第一个字符$toUpper:将提取的首字符转为大写$substrCP: ["$name", 1, { $strLenCP: "$name" }]:提取从第2个字符开始到字符串末尾的全部内容$toLower:将剩余字符转为全小写$concat:把大写首字母和小写剩余部分拼接成目标格式的字符串
内容的提问来源于stack exchange,提问作者TheStranger
相关产品推荐
相关产品推荐

