mongodb中的findOneAndUpdate仅返回更新后的值

时间:2019-02-10 13:55:50

标签: mongodb mongoose

我必须为我的应用程序(MEAN-Stack)创建一个日志。我需要知道,哪个用户更改了客户文档中的字段以及何时执行此操作。知道用户是谁,什么时候知道是没有问题的。但是我希望我的日志尽可能“干净”,因此我只想写下更改的值。

让我们举个例子:

customer : {
    name: Customer Ltd.
    address: FooStreet 11
    zip: 21412
    country: Germany
}

用户现在可以使用此功能更改邮政编码(req.body.customer包括整个客户文档,而不仅仅是更改的字段)

const customer = await Customer.findOneAndUpdate({ _id: req.body.id }, { $set: req.body.customer }, { new: true });

是否有可能从findOneAndUpdate()获取更改的字段,或者有更好的方法来解决我想要的问题?

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

findOneAndUpdate采用returnNewDocument选项,该选项返回更新的文档而不是原始文档-https://docs.mongodb.com/manual/reference/method/db.collection.findOneAndUpdate/