首页 > 解决方案 > 如何在 Mongoose 的数组中为每个值添加一个字符串?

问题描述

假设我有一组这样的文件......

{ name: "Bob", listIDs: ["1c2f", "32a1", "0ebf"] }
{ name: "Meg", listIDs: ["a844", "8132", "b246"] }
...

如何将字符串“0000”添加到每个文档的 listIDs 中的每个值?例如

{ name: "Bob", listIDs: ["00001c2f", "000032a1", "00000ebf"] }
{ name: "Meg", listIDs: ["0000a844", "00008132", "0000b246"] }
...

标签: mongodbmongoose

解决方案


您可以尝试从 MongoDB 4.2 开始使用聚合管道进行更新,

  • $maplistIDs迭代数组的循环
  • $concat0000元素值连接
db.collection.updateMany({},
  [{
    $set: {
      listIDs: {
        $map: {
          input: "$listIDs",
          in: { $concat: ["0000", "$$this"] }
        }
      }
    }
  }]
)

操场


推荐阅读