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

mongoose@6.10.0中List模型items数组追加更新失败求助

解决Mongoose数组元素追加不生效的问题

你的代码存在两个核心问题导致更新未生效,以下是修复方案:

问题分析

  1. 异步操作未等待:List.updateOne是异步方法,你直接调用后立刻执行res.redirect,此时数据库更新尚未完成就跳转,导致看不到更新结果。
  2. 数据格式不匹配:items数组存储的是符合itemSchema结构的对象({ item: String }),但你直接传入了字符串newItem,结构不匹配导致无法正确追加。

修复代码

app.post("/", async function(req, res){
    var newItem = req.body.newItem;
    var listName = req.body.button;
    if(listName === "Today"){
        await addItem(newItem); // 如果addItem是异步方法,必须加await等待完成
        res.redirect("/");
    }else{
        // 将字符串包装为符合itemSchema的对象,同时等待更新操作完成
        await List.updateOne({name: listName}, {$push: {items: { item: newItem }}});
        res.redirect("/" + listName);
    }
});

额外说明

如果你的addItem函数内部也是异步数据库操作(比如调用Item.create),同样需要在调用时加上await,避免出现类似的操作未完成就跳转的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 11:04:59