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

MongoDB如何将数字类型字段更新为含该数字的数组?

MongoDB将数字字段转为包含该数字的数组的正确方法

你之前的代码未生效,是因为普通的$set更新操作无法直接通过$balance引用原有字段值来构造数组——此时$balance会被当作字符串字面量处理。要实现需求,需要使用聚合管道式更新,也就是将更新操作以聚合阶段数组的形式传入:

Collection.updateMany(
  { balance: { $type: 'number' } },
  [
    { $set: { balance: ["$balance"] } }
  ]
);

原理说明

当更新参数是聚合管道数组时,MongoDB会解析管道中的字段引用(如$balance),而不是将其视为普通字符串。这里的$set阶段会把原balance字段的数字值包裹进数组,再重新赋值给balance字段,从而得到你想要的文档结构。

执行后,原文档:

{
  "_id":"myId",
  "balance":1
}

会被更新为:

{
  "_id":"myId",
  "balance": [1]
}

内容的提问来源于stack exchange,提问作者Andrew

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 04:40:25