开发者

Clean versioning/change history implementation in Mongoose

开发者 https://www.devze.com 2023-04-04 02:54 出处:网络
I\'m trying to implement a way of creating a record (Update) when changes are made in a MongoDB document, via Mongoose/Node.js/Express. I\'m new开发者_如何学编程 to Node.js so I was wondering what the

I'm trying to implement a way of creating a record (Update) when changes are made in a MongoDB document, via Mongoose/Node.js/Express. I'm new开发者_如何学编程 to Node.js so I was wondering what the best way would be of doing this.

I imagine the record to be something like:

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

I know it's possible to set up a pre function that gets called when another method is called, e.g. save.

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

The problem is, I'm not sure how to determine what was changed in the save operation, so it's hard to create a list of updated values.

Can anyone think of a clean way to do this?


You might want to look at the Model.js source. There's two functions in the model prototype that should help you. _dirty() and _delta()

0

精彩评论

暂无评论...
验证码 换一张
取 消