在Sails中维护模型的数据历史记录的有效方法是什么?例如,如果用户更新数据库,而我们希望保留版本以便在数据更新时恢复数据,我们如何维护数据。
我见过很多使用"changes“标记来保持日期为子标记的例子。这是最有效的吗?
在模型更新时,我们可以复制以前的信息。有没有更好的建议或例子链接?
{
text:"This is the latest paragraph",
changes:{
text:{
"1470685677694":"This was the paragraph",
"1470685577694":"This was the original paragraph"
}
}
}我希望找到一个很好的解决方案来查找/搜索并优化这些数据,以便用户在必要时进行恢复。
发布于 2016-08-12 07:19:06
您可以像下面这样定义您的模型,因此您还可以保留历史记录,您可以使用它来恢复任何以前的值。
api/models/Test.js
module.exports = {
connectionName:"someMongodbServer",
tableName:"test",
autoCreatedAt:false,
autoUpdatedAt:false,
autoPk:false,
attributes: {
id:{
type:"integer",
primaryKey:true,
autoIncrement:true
},
name:"string",
history:{
type:'json',
defaultsTo:[]
}
},
beforeCreate:function(value,cb){
Test.count().exec(function (err, cnt) {
if(err)
return cb(err);
value.id = cnt + 1;
cb();
});
},
beforeUpdate:function(values,cb){
Test.native(function(err,collection){
if(err)
return cb(err);
collection.findOne({_id:values.id},{history:0,_id:0},function(err,data){
if(err)
return cb(err);
collection.updateOne({_id:values.id},{$push:{history:data}},function(err,res){
if(err)
return cb(err);
console.log(res);
cb();
});
})
});
}
};https://stackoverflow.com/questions/38837442
复制相似问题