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

MongoDB无法向meetings对象数组字段存储多条数据如何解决

问题根源

  1. 请求体格式错误:JSON对象中重复声明相同key时,后声明的值会覆盖前者,因此你提交的请求体最终只会保留最后一组name和timer,前面的内容直接丢失。
  2. 控制器逻辑错误:你当前是把单个会议对象传给meetings字段,而meetings字段定义的是数组类型,即使拿到多个会议数据,这样写也只会存一个。
  3. 缺失必填字段:Schema中定义了responsible是必填项,你当前创建文档时没有传入该字段,实际运行会触发校验报错。

调整方案

第一步:修改Insomnia请求体

把多个会议数据封装到meetings数组中,同时补充必填的responsible字段:

{
  "meetings": [
    {
      "name": "Meeting Name",
      "timer": 100
    },
    {
      "name": "Meeting Name2",
      "timer": 400
    }
  ],
  "responsible": "负责人姓名"
}

第二步:修改控制器代码

直接接收请求体中的meetings数组传入模型即可:

const { meetings, responsible } = req.body;
const response = await MeetingModel.create({
  meetings: meetings,
  responsible: responsible
});

return res.status(201).json(response);

补充:已有文档追加多条会议数据

如果你是要给已经存在的文档的meetings字段追加新数据,用$push + $each语法实现:

// docId为目标文档的_id值
await MeetingModel.findByIdAndUpdate(docId, {
  $push: {
    meetings: { $each: 新的会议数组 }
  }
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 17:06:01