mongoose 操作数组

router.delete('/api/comment', (req, res, next) => {
    const { _id, postID } = req.body;
    commentModel.remove({ _id }, (err, doc) => {
        if (err) {
            res.json({ code: 1, msg: err });
        } else {
            // 更新文章的comments列表
            postModel.update({ _id: postID }, { $pull: { comments: _id } }, (err, postDoc) => {
                res.json({ code: 0, data: doc });
            });
        }
    });
});

文章里面存了一个评论_id组成的数组comments

删除评论成功,但是更新文章的comments列表失败

$push都是可以的,不知道为什么$pull不行?


没有报错,返回{ nModified: 0, ok: 1 }


哔哔one
浏览 2138回答 2
2回答

温温酱

你可能需要ObjectId(_id);router.delete('/api/comment', (req, res, next) => {     const { _id, postID } = req.body;     commentModel.remove({ _id }, (err, doc) => {         if (err) {             res.json({ code: 1, msg: err });         } else {             // 更新文章的comments列表             postModel.update({ Object(_id): postID }, { $pull: { comments: _id } }, (err, postDoc) => {                 res.json({ code: 0, data: doc });             });         }     }); });直觉,你都没贴报错还有返回,就只能这样了

冉冉说

打下报错信息。
打开App,查看更多内容
随时随地看视频慕课网APP