MongoDb $ inc自动增加两倍

时间:2020-08-24 12:10:56

标签: node.js mongodb

在我的代码中,我必须在报告的活动文档集合数组中增加一些值。所以我用这段代码

    return new Promise(async (resolve, reject) => {
        const logData = {
            'reportedBy': body.reportedBy,
            'reportedAt': new Date().toISOString(),
            'reportReason': body.reportReason
        }
        await model.findOneAndUpdate({ _id: body.id },
            {
                $addToSet: { 'reported.log': [logData] },
                $inc: {
                    'reported.count': 1
                }
            },
            { new: true }, (err, activity) => {
                createError(err, reject);
                resolve(activity);
            });
    });
}

成功提交后,显示计数增加1,但是在MongoDB中,显示2计数可以指导我上面代码中缺少的内容。

1 个答案:

答案 0 :(得分:2)

您正在使用异步和回调样式,这会使操作执行两次。选择一种样式。

另请参阅UpdateMany in MongoDB running twice with $inc