【问题标题】:Wrapping multiple similar mongoose schemas into a single schema将多个相似的 mongoose 模式包装成一个模式
【发布时间】:2015-04-30 11:35:49
【问题描述】:

我有一个服务器,它存储代表对象的记录,并使用 Mongoose 来管理这些记录。我希望能够查询/更新/等。所有具有简单 API(即单个端点)的对象。不同类型的对象有一些相同的属性,也有一些不同的属性,所以单一的 static 对象模式是行不通的。相反,我仍然想要一个单一的模式,但我希望能够通过在创建每个新对象时添加/删除字段来稍微改变它,根据对象的类型,字段是否存在.我不想要混合模式,因为我想要对每种类型的 Object 进行错误验证。我想要一个单一的模式(而不是每种类型的对象都有一个不同的模式),这样我就可以做

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

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

显然,我是 Mongoose 的新手。我只是在这里谈了很多关于模式的事情,我真的不知道我是否应该在某些地方使用“模型”这个词来代替“模式”。我只是不知道如何才能完成这一切。让我知道如果我没有任何意义。

【问题讨论】:

    标签: node.js mongoose


    【解决方案1】:

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

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

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

    【讨论】:

    • Geeze... 这是一个严重无法正确表达我的问题的实例。如果我只是搜索“模式继承”,我会找到很多答案。谢谢!
    • 目前两个链接中的第一个已失效。您能否在答案中包含您提出的解决方案? @reto
    猜你喜欢
    • 2018-10-22
    • 2016-03-18
    • 2016-05-29
    • 2013-04-07
    • 2012-11-20
    • 2018-08-25
    • 1970-01-01
    • 2021-11-20
    • 2019-07-05
    相关资源
    最近更新 更多