将多个相似的猫鼬模式包装到一个模式中

Wrapping multiple similar mongoose schemas into a single schema

我有一个服务器,它存储代表对象的记录,并使用 Mongoose 来管理这些记录。我希望能够query/update/etc。所有具有简单 API 的对象(即单个端点)。不同类型的对象有一些相同的属性,也有一些不同的属性,所以单一的 static 对象模式是行不通的。相反,我仍然想要一个单一的模式,但我希望能够在创建每个新对象时通过 adding/deleting 字段稍微更改它,其中 are/aren 不存在的字段取决于对象的类型。我不想要混合模式,因为我想要对每种类型的对象进行错误验证。我想要一个单一的模式(而不是为每种类型的对象使用不同的模式)这样我就可以做

Object = mongoose.model('Object', ObjectSchema);
Object.findOne({objectType: "type1"}, function(err, model) {
    ...
});

所以基本上,我想要字段验证,同时仍然保持属性的一些灵活性,以及​​指向 query/update/etc 的单点。我的对象记录。如果我用每个新对象更改架构,将其重新编译为模型,并创建该模型的新实例,那么不同模型的所有实例(从同一架构的不同修改版本编译而来)是否仍然可以像上面那样查询?

显然,我是 Mongoose 的新手。我刚刚在这里谈到了很多关于架构的问题,老实说,我不知道我是否应该在某些地方使用 "model" 一词来代替 "schema"。我只是不知道我怎样才能完成这一切。如果我说的不对,请告诉我。

我们成功地将 mongoose 模型继承和鉴别器功能用于一个非常相似的场景。示例见此处:

http://www.laplacesdemon.com/2014/02/19/model-inheritance-node-js-mongoose/

您也许还可以使用这个插件: https://www.npmjs.com/package/mongoose-schema-extend