我需要在集合中对文档进行版本化,以便对文档进行任何更改,然后将编辑后的副本保存为“当前”并保留以前的版本,以及时间戳,人物编辑等。设计了一个类似的架构:
var doc = new Schema;
doc.Add({ created: Date,
created_by:{type: ObjectId, ref: 'User'},
doc_id: String,
doc_data: String,
prev_docs:[doc]
});
因此,编辑文档会获取当前文档,制作副本并更新文档,将current_doc粘贴到prev_docs等等。
prev_docs
一样引用自身吗?prev_docs
只能用作审计跟踪,用户通常不会看到以前的版本,并且会从大多数查询中完全排除。