在Mongoose中清理版本控制/更改历史记录实现

时间:2011-09-10 09:27:57

标签: node.js express mongoose

我正在尝试通过Mongoose / Node.js / Express在MongoDB文档中进行更改时实现创建记录(Update)的方法。我是Node.js的新手,所以我想知道这样做最好的方法。

我想这个记录是这样的:

update: {
    before: { ... },
    after:  { ... },
    created_at: Date,
};

我知道可以设置一个pre函数,在调用另一个方法时调用该函数,例如save

Entry.pre('save', function(next) {
    // create an Update record
    next();
});

问题是,我不确定如何确定save操作中的更改内容,因此很难创建更新值列表。

有人能想到一个干净的方法吗?

1 个答案:

答案 0 :(得分:4)

您可能希望查看Model.js来源。模型原型中有两个功能可以帮助您。 _dirty()和_delta()