繁体   English   中英

如何在mongodb中将数组转换为字符串

[英]How to convert array to string in mongodb

我有以下架构

{
 id: 123,
 values:[
   {valueId: "12444", name: "asd"},
   {valueId: "555", name: "www"},
 ]
}

我想将其转换为(将name组合为单个字符串)

{
 id: 123,
 values: "asdwww"
}

我试过下面的聚合,它将所有名称值放在一个数组中

$project: {
      attributes: {
        "$map": {
          "input": "$attributes",
          "as": "attr",
          "in": {
            "id": "$$attr.id",
            "values": "$$attr.values.name"
          }
        }
      }
    },

这使它成为

{
 id: 123,
 values:[
     "asd",
     "www"
   ]
}

我希望将值作为单个字符串值作为"asd,www""asdwww"

你需要$reduce而不是$map

db.collection.aggregate([
    {
        $project: {
            _id: 1,
            values: {
                $reduce: {
                    input: "$values",
                    initialValue: "",
                    in: { $concat: [ "$$value", "$$this.name" ] }
                }
            }
        }
    }
])

蒙戈游乐场

这是一个显示如何处理分隔符的示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM