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

MongoDB向数组批量推送对象的update语句错误修正求助

修正MongoDB数组更新语句

你的问题出在使用$push时直接传入了数组,这会导致整个newStudents数组被作为单个元素添加到students数组中,而非逐个插入新学生对象。

要实现将数组中的每个元素分别推入目标数组,需要使用$push配合$each操作符,修改后的查询语句如下:

Students.update(
    { "_id": "btv7865reVGlksabv" },
    {
        $push: {
            "students": { $each: newStudents }
        }
    }
);

补充说明

  • 若使用较新版本的MongoDB驱动,更推荐语义更明确的updateOne方法(仅更新匹配到的第一个文档):
Students.updateOne(
    { "_id": "btv7865reVGlksabv" },
    {
        $push: {
            "students": { $each: newStudents }
        }
    }
);
  • $each操作符会遍历newStudents数组,将其中的每个对象依次添加到students数组末尾,最终文档结构会变为:
{
    "_id": "btv7865reVGlksabv",
    "students": [
        { "name": "John", "age": 30 },
        { "name": "Henry", "age": 25 },
        { "name": "Mike", "age": 22 },
        { "name": "Kim", "age": 20 }
    ]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 14:01:26