Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 用于版本控制的自引用架构_Mongodb_Mongoose - Fatal编程技术网

Mongodb 用于版本控制的自引用架构

Mongodb 用于版本控制的自引用架构,mongodb,mongoose,Mongodb,Mongoose,我需要对集合中的文档进行版本设置,以便对文档所做的任何更改都会生成一个副本,并将编辑后的副本保存为“当前”,保留以前的版本,以及时间戳、人员编辑等。我设计了一个模式,如: var doc = new Schema; doc.Add({ created: Date, created_by:{type: ObjectId, ref: 'User'}, doc_id: String, doc_data: String,

我需要对集合中的文档进行版本设置,以便对文档所做的任何更改都会生成一个副本,并将编辑后的副本保存为“当前”,保留以前的版本,以及时间戳、人员编辑等。我设计了一个模式,如:

var doc = new Schema;
doc.Add({ created: Date, 
          created_by:{type: ObjectId, ref: 'User'}, 
          doc_id: String, 
          doc_data: String, 
          prev_docs:[doc]
});
因此,编辑文档将获取当前文档,制作副本,并更新文档,将当前文档粘贴到上一个文档中,等等

  • 模式是否可以引用自身,如
    prev\u docs
    dos
  • 这种设计模式在MongoDB中可伸缩吗
    prev_docs
    将仅用作审计跟踪,用户通常不会看到以前的版本,并且将从大多数查询中完全排除

  • 1) 这不是有效的JavaScript语法,
    doc
    将是
    未定义的。
    您需要使用Schema.add:。2) 如果不经常使用,我不会将审计信息存储在同一个集合中。代码是伪javascript,我实际上没有实现它