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

MongoDB使用$push更新sensor_id为2的文档medidas数组无效果问题咨询

问题原因

你写的更新语句存在两处明显错误,导致匹配不到文档或无法执行数组更新:

  • 查询条件错误添加了"_id": 0过滤规则,你集合内所有文档的_id都是ObjectId类型,不存在_id为0的文档,因此查询不到任何符合条件的待更新记录
  • $push操作符后目标数组字段多写了$前缀,错误写成$medidas,MongoDB会将其识别为非目标字段,无法对正确的medidas数组执行追加操作

正确更新语句

如果需要更新所有sensor_id: 2的文档,直接使用如下语句即可:

db.datos_sensores2.update(
  { "sensor_id": 2 },
  {
    $push: {
      "medidas": {
        $each: [
          {"precio_kWh": 0.102, "unidad": "€/kWh"}, 
          {"superficie": 450, "unidad": "m2"}
        ]
      }
    }
  },
  { multi: true }
)

如果需要额外限制location_id为1,只需要把查询条件修改为{ "sensor_id": 2, "location_id": 1 }即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 11:36:04