【问题标题】:how should create schemas for several mongoose models with different fields?应该如何为具有不同字段的几个猫鼬模型创建模式?
【发布时间】:2021-08-14 05:04:31
【问题描述】:

假设我们要建立一个包含不同产品的电子商务网站,例如这些产品分为四五个类别。每个类别的产品都有自己的字段,当然它们之间还有一系列共同的字段,例如产品名称、价格、描述和... 我的问题是,我们应该为每种产品定义四个还是五个不同的模式?

【问题讨论】:

    标签: node.js mongodb express mongoose mongoose-schema


    【解决方案1】:

    我确实认为您应该为每个产品类别创建一个架构,即使它们可能共享一些相似的字段。

    您可以为相似的字段创建一个对象并将它们插入到模式中,如果这有助于您不必重复自己的话。

    如果一个 Schema 拥有所有产品所需的所有字段,那就太臃肿了。而且每个类别也有不同的模型也没有意义。当您查询产品时,它会返回许多与产品无关的字段。

    【讨论】:

    • 那么我应该如何实现添加到购物车部分?在用户模型中,我添加了一个购物车字段,如下所示:。 . . cart: { items: [ { productId: { type: Schema.Types.ObjectId, ref: 'Product', required: true }, quantity: { type: Number, required: true } } ] } 并根据你所说的,我应该在“ref”而不是“product”中输入什么???
    • 我可以使用 refs 数组吗?
    • 我看到了你的困境。在这种情况下,您将有不同的模式来存储和列出您的产品。还有一个单独的产品订单模式来存储添加到购物车的产品订单 - 这将是您的购物车模型的参考。原因是当您将产品添加到购物车时,您需要的产品字段现在应该相似,例如“qtyOrdered”、“totalPrice”、“unitPrice”。如果您愿意,您仍应参考单个产品类别。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-21
    • 2020-03-10
    • 2012-04-22
    • 1970-01-01
    • 2023-03-09
    • 2015-04-11
    • 2015-03-25
    相关资源
    最近更新 更多