我有一个服务器,它存储表示对象的记录,并使用 Mongoose 来管理这些记录。我希望能够查询/更新/等等。所有具有简单 API 的对象(即单个端点)。不同类型的对象具有一些相同的属性和一些不同的属性,因此单个静态对象模式是行不通的。相反,我仍然希望有一个单一的模式,但我希望能够通过在创建每个新对象时添加/删除字段来稍微更改它,其中存在/不存在的字段取决于对象的类型。我不想要混合模式,因为我想要对每种类型的对象进行错误验证。我想要一个单一的架构(而不是每种类型的对象都有不同的架构),这样我就可以这样做
Object = mongoose.model('Object', ObjectSchema);
Object.findOne({objectType: "type1"}, function(err, model) {
...
});
所以基本上,我想要字段验证,同时仍然保持属性的一些灵 active ,以及查询/更新/等的单点。我的对象记录。如果我更改每个新对象的架构,将其重新编译为模型,并创建该模型的新实例,那么不同模型的所有实例(从同一架构的不同修改版本编译而来)是否仍可如上所述进行查询?
显然,我是 Mongoose 的新手。我刚刚在这里谈论了很多关于模式的内容,老实说,我不知道是否应该在某些地方使用“模型”一词来代替“模式”。我只是不知道如何才能完成这一切。如果我没有任何意义,请告诉我。
最佳答案
我们成功地将 Mongoose 模型继承和鉴别器功能用于非常相似的场景。请参阅此处的示例:
http://www.laplacesdemon.com/2014/02/19/model-inheritance-node-js-mongoose/
您也许还可以使用此插件: https://www.npmjs.com/package/mongoose-schema-extend
关于node.js - 将多个相似的 Mongoose 模式包装到单个模式中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28770459/