我必须在Mongoose查询中执行以下代码行,该代码行在name字段中检索用户的全名:
populate("reviews.userid",{name:{$concat:["$firstname"," ","$lastname"]}})
我如何扩展它来只检索名字的第一个字母,后面跟着一个点,然后是完整的姓氏?例如,对于玛丽汗,我想找回M。汗
uqcuzwp81#
$substr自3.4版起已弃用。您可以使用$substrCP操作符提取名字的第一个字符,并使用$toUpper将其大写。
populate("reviews.userid", { name: { $concat: [ { $toUpper: { $substrCP: ["$firstname", 0, 1] } }, ". ", "$lastname" ] } })
您可以在https://www.mongodb.com/docs/manual/reference/operator/aggregation/substrCP/上阅读更多关于$substrCP的信息
https://www.mongodb.com/docs/manual/reference/operator/aggregation/substrCP/
jjhzyzn02#
通过使用$substr运算符提取名字的第一个字母,然后将其与姓氏连接起来,可以实现此结果。
populate("reviews.userid", { name: { $concat: [ { $toUpper: { $substr: ["$firstname", 0, 1] } }, ". ", "$lastname" ] } })
$toUpper用于将名字的第一个字母转换为大写。现在,查询将检索到名的第一个字母,后跟一个点和一个空格,然后是完整的姓氏。
2条答案
按热度按时间uqcuzwp81#
$substr自3.4版起已弃用。您可以使用$substrCP操作符提取名字的第一个字符,并使用$toUpper将其大写。
您可以在
https://www.mongodb.com/docs/manual/reference/operator/aggregation/substrCP/
上阅读更多关于$substrCP的信息jjhzyzn02#
通过使用$substr运算符提取名字的第一个字母,然后将其与姓氏连接起来,可以实现此结果。
$toUpper用于将名字的第一个字母转换为大写。现在,查询将检索到名的第一个字母,后跟一个点和一个空格,然后是完整的姓氏。