You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Mongoose的populate查询中生成名字首字母加姓氏格式?

Mongoose查询中生成首字母缩写格式的姓名

你可以借助MongoDB的字符串操作符实现首字母加姓氏的格式,以下是两种可行方案:

方案一:兼容多数MongoDB版本(使用$substrCP)

通过$substrCP提取名字的第一个字符,再拼接英文句号、空格和姓氏:

populate("reviews.userid", {
  name: {
    $concat: [
      { $substrCP: ["$firstname", 0, 1] },
      ". ",
      "$lastname"
    ]
  }
})

$substrCP的参数分别是目标字段、起始索引(从0开始)和截取长度,这里取firstname的第一个字符,再和". "、lastname拼接成目标格式。

方案二:适用于MongoDB 5.0+版本(使用$first+$split)

如果你的MongoDB版本在5.0及以上,可以用$split把名字拆分为单个字符的数组,再用$first取首字符:

populate("reviews.userid", {
  name: {
    $concat: [
      { $first: { $split: ["$firstname", ""] } },
      ". ",
      "$lastname"
    ]
  }
})

这种写法更直观,$split将firstname按空字符串拆分后得到单个字符的数组,$first提取数组第一个元素,再完成后续拼接。

两种方案都能实现输入Mary Khan时输出M. Khan的效果。

内容的提问来源于stack exchange,提问作者D. Rattansingh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 00:04:51