首页 > 解决方案 > Mongoose .save 函数返回“未找到 id "32fdj..." 版本 0 modifiedPaths "cmRooms" 的匹配文档'

问题描述

    let property = await PropertyModel.findOne({
      propertyId: res.locals.userInformations.userId
    });

    let cmRooms = property.cmRooms;
    const newCmRooms = cmRooms.filter(
      cmRoom => cmRoom.cmRoomId !== "1234";
    );

    property.cmRooms = newCmRooms;
    await property.save(err => {
      if (err) console.log(err);
    });

我收到以下错误

message: '没有为 id "5eb7638320ab5d0633477081" 版本 0 modifiedPaths "cmRooms" 找到匹配的文档',

名称:'版本错误',版本:0,

修改路径:['cmRooms']}

标签: node.jsmongoose

解决方案


您可以将上面的代码更改为此并尝试:

await PropertyModel.findOne({
    propertyId: res.locals.userInformations.userId
}, async function (err, property) {
    if (!err) {
        let cmRooms = property.cmRooms;
        const newCmRooms = cmRooms.filter(
            cmRoom => cmRoom.cmRoomId !== "1234"
        );

        property.cmRooms = newCmRooms;
        await property.save(err => {
            if (err) console.log(err);
        });
    }
});

推荐阅读