node.js - 将多个相似的 Mongoose 模式包装到单个模式中

标签 node.js mongoose

我有一个服务器,它存储表示对象的记录,并使用 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/

相关文章:

node.js:HTTP 到 UDP 网关

node.js - Metalsmith - 静态站点生成器 - 配置

node.js - 使用 Mongoose 统一错误捕获

node.js - 如何使用 mongoose 将其他属性添加到 mongoDB 找到的文档中?

node.js - Mongoose 多个 $push 到多个数组

node.js - 使用node.js将Instagram图片保存到本地文件夹中

Node.js:提供动态 pdf,结果为空

node.js - 如何为 GridFS 集合创建 Mongoose 模型?

node.js - 为什么我不能访问 Mongoose 模式的方法?

node.js - 当使用 Istanbul 尔时,MongoDB 中的日期字段移动一小时