我有一个服务器存储表示对象的记录,并使用Mongoose来管理这些记录 . 我希望能够查询/更新/等 . 具有简单API的所有对象(即单个 endpoints ) . 不同类型的对象具有一些相同的属性和一些不同的属性,因此根据对象的类型,单个 static 对象模式会出现't do. Instead, I still want to have a single schema, but I want to be able to change it slightly by adding/deleting fields when I create each new Object, with the fields which are/aren't . 我不想要混合模式,因为我想要为每种类型的Object进行错误验证 . 我想要一个单一的模式(而不是每种类型的Object的不同模式),所以我可以这样做
Object = mongoose.model('Object', ObjectSchema);
Object.findOne({objectType: "type1"}, function(err, model) {
...
});
所以基本上,我想要字段验证,同时仍然保持一些属性的灵活性,以及单点查询/更新/等 . 我的对象记录 . 如果我使用每个新Object更改模式,将其重新编译为模型,并创建该模型的新实例,那么不同模型的所有实例(从同一模式的不同修改版本编译)仍然可以像上面一样查询吗?
显然,我是Mongoose的新手 . 我刚刚在这里谈了很多关于模式的内容,老实说我不知道在某些地方是否应该用“模型”代替“模式” . 我只是不知道如何才能完成所有这些 . 如果我没有意义,请告诉我 .
1 回答
我们成功地将mongoose模型继承和鉴别器功能用于非常类似的场景 . 请看这里的例子:
http://www.laplacesdemon.com/2014/02/19/model-inheritance-node-js-mongoose/
您也可以使用此插件:https://www.npmjs.com/package/mongoose-schema-extend