我正在使用MEAN.io进行项目。在MEAN.io中,用于管理用户的包位于node_modules中,因此不能修改它。用户的MongoDB模型位于那里,所以如果我想添加新字段,我必须使用我自己创建的包中的schema.add方法来实现:
user.schema.add({
field1: [],
deleted_at: {
type: Date,
default: null
},
banned_at: {
type: Date,
default: null
},
created_at: {
type: Date,
default: new Date()
},
field2: {
type: Number,
default: 0
},
field3: {
type: Number,
default: 0
},
field4: {
type: Number,
default: 0
}
});
一切似乎都运行良好,但是当我尝试修改deleted_at字段时,执行以下操作:
user.deleted_at = new Date();
console.log(user);
用户对象不显示deleted_at字段的任何跟踪。它不会改变任何东西。
所以问题是如何修改动态添加的字段?
提前致谢!
答案 0 :(得分:0)
问题是设计模式被编译成模型而无法动态编辑。此线程(here)包含有关mongoose的信息,但对于将字段动态添加到数据库模式的其他方法也是如此。
如果您不确定架构,则应使用混合类型。浏览@ vkarpov15评论以获取其他选项。