在mongoose中检索firstname的第一个字母

vdgimpew  于 2023-10-19  发布在  Go
关注(0)|答案(2)|浏览(137)

我必须在Mongoose查询中执行以下代码行,该代码行在name字段中检索用户的全名:

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

我如何扩展它来只检索名字的第一个字母,后面跟着一个点,然后是完整的姓氏?
例如,对于玛丽汗,我想找回M。汗

uqcuzwp8

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的信息

jjhzyzn0

jjhzyzn02#

通过使用$substr运算符提取名字的第一个字母,然后将其与姓氏连接起来,可以实现此结果。

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

$toUpper用于将名字的第一个字母转换为大写。现在,查询将检索到名的第一个字母,后跟一个点和一个空格,然后是完整的姓氏。

相关问题