【发布时间】:2017-06-08 01:47:23
【问题描述】:
我有一个模型,我使用架构中的预保存挂钩进行了修改。保存后,mongoose 返回修改后的数据,__v 更新,一切看起来都很漂亮。但是当我检索模型时,我的模型根本没有改变......
这是我的源代码的精简版:
var schema = new Schema({
name: {
type: String,
required: true,
},
version: {
type: Number,
required: false,
},
versions: {
type: Object,
required: false,
},
elements: {
type: Array,
required: false,
},
})
.pre('save', function(next) {
version = Object
.keys(this.versions)
.map(function(key) { return parseInt(key); })
.sort(function(a, b) { return a - b; })
.reverse()[0] + 1;
if (isNaN(version)) {
version = 1;
}
this.versions[version] = {
createdAt: new Date(),
elements: this.elements.slice(),
};
this.elements = null;
})
我这样做是因为我需要将所有更改保留在特定版本中,以便人们可以加载特定版本的数据,但客户端不应该知道这些,只需获取版本号和正确的元素.
您能否指出我的问题的正确方向,或者告诉我我做错了什么。非常感谢任何帮助。
【问题讨论】: