Mongoose更新结果,确切地修改了哪些字段

时间:2016-07-22 12:18:56

标签: node.js mongodb mongoose

  • 我在node.js中编写了多个使用mongodb的更新REST API 作为后端DB。
  • 这些更新API本质上是原子的,并且在a 时间更新mongodb文档的各个部分以获取用户配置文件  示例:位置API,个人信息API等。

我正在寻找能够知道在文档中修改了哪些单独字段的功能。例如,如果位置API包含国家/地区,州,城市以及是否真的对国家/地区进行了更新。我想跟踪国家是唯一的领域变化。

Mongoose不会报告文档中真正要修改的字段。

以下是样本:

Model.users.update({_id: "12345"}, {$set: update}, {upsert:true}, function (err, resp) {
        if (err) { return console.log(err);
 ----
});

响应:

{ ok: 1,
  nModified: 1,
  n: 1,
  lastOp: Timestamp { _bsontype: 'Timestamp', low_: 1, high_: 1469188533 },
  electionId: 5765d40f7dd9376cd6345122 

}

1 个答案:

答案 0 :(得分:0)

为此目的使用mongoose中间件

http://mongoosejs.com/docs/middleware.html

schema.post('update', function(doc, next) {

        // this._update.$set  contains all the fields which are updated 
        if (this._update.$set.country) {
          concole.log('country is modified');
        }




    });