【问题标题】:MongoDB: concatinate multiple number values to stringMongoDB:将多个数值连接到字符串
【发布时间】:2020-11-23 19:21:32
【问题描述】:

我有一个文档(内部聚合,在$group 阶段之后),它有一个带有number 值的对象(但如果需要,我可以形成数组)。

MongoPlayground example 提供数据和我的聚合查询。

我想在下一个$project 阶段创建一个新的_id 字段,由这三个number 值组成,例如:

   item_id | unix time | pointer
_id: 453435-41464556645@1829

问题是,当我尝试使用 $concat 时,查询返回如下错误:

$concat only supports strings, not int

所以这是我的问题:有可能达到这样的结果吗?我已经看到了相关问题MongoDB concatenate strings from two fields into a third field,但它并没有涵盖我的情况。

【问题讨论】:

  • $concat只支持字符串,你需要将你的字段值转换为字符串使用$toString检查mongoplayground.net/p/SSlXW4gIs_X
  • @turivishal 太好了,非常感谢!你能把它作为一个答案吗?所以我可以接受它并标记为已解决?

标签: mongodb mongoose mongodb-query aggregation-framework


【解决方案1】:

$concat 只连接字符串,这些字段 $_id.item_id 包含 int 值和 $_id.last_modified double 值,

$toString 将值转换为字符串,

_id: {
  $concat: [
    {
      $toString: "$_id.item_id"
    },
    " - ",
    {
      $toString: "$_id.last_modified"
    }
  ]
}

游乐场:https://mongoplayground.net/p/SSlXW4gIs_X

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-07
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 2019-01-07
    • 1970-01-01
    相关资源
    最近更新 更多