首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在SailsJS中维护模型更新的历史记录

在SailsJS中维护模型更新的历史记录
EN

Stack Overflow用户
提问于 2016-08-09 03:52:58
回答 1查看 268关注 0票数 3

在Sails中维护模型的数据历史记录的有效方法是什么?例如,如果用户更新数据库,而我们希望保留版本以便在数据更新时恢复数据,我们如何维护数据。

我见过很多使用"changes“标记来保持日期为子标记的例子。这是最有效的吗?

在模型更新时,我们可以复制以前的信息。有没有更好的建议或例子链接?

代码语言:javascript
运行
复制
{
   text:"This is the latest paragraph",
   changes:{
      text:{
          "1470685677694":"This was the paragraph",
          "1470685577694":"This was the original paragraph"
      }
   }
}

我希望找到一个很好的解决方案来查找/搜索并优化这些数据,以便用户在必要时进行恢复。

EN

Stack Overflow用户

发布于 2016-08-12 07:19:06

您可以像下面这样定义您的模型,因此您还可以保留历史记录,您可以使用它来恢复任何以前的值。

api/models/Test.js

代码语言:javascript
运行
复制
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();
        });
      })
    });
  }
};
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38837442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档