Mongoose - 删除使用承诺

时间:2017-11-23 11:51:31

标签: node.js mongodb mongoose

我试图批量删除评论作为文档而不是模型,因为我想稍后使用预挂钩删除方法。

以下命令查找满足查询的多个文档,并尝试逐个删除每个注释。删除所有内容之后,如果在它应该捕获它的阶段中有任何错误,则调用next()函数。

Comment.find({'moment': this._id})
    .then(((comments) => Promise.each(comments, (comment) => comment.remove()))
    .then(next())
    .catch(next()));

然而,这给了我一个错误,而不是删除评论

  

“TypeError :(中间值).then不是函数”

2 个答案:

答案 0 :(得分:0)

试试这个

   .then(() => next())
    .catch(() => next()));

或者这个(有错误处理)

   .then(() => next())
    .catch(next);

答案 1 :(得分:0)

我决定使用原生承诺,我可以使用Promise.all

来实现这一目标
Comment.find({'moment': this._id})
    .then((comments) => {
        Promise.all(comments.forEach((comment) => comment.remove()))
            .then(next());
    });