如何在Mongoose模型中添加不同尺寸的产品?

时间:2017-10-22 03:03:47

标签: node.js mongodb mongoose mongoose-schema

我正在使用MongoDb和Mongoose为练习电子商务网站创建模型。以下是我目前为我的产品型号所做的事情:

var mongoose = require('mongoose');

module.exports = mongoose.model('Product',{
  imagePath: {type: String, required: true},
  title: {type: String, required: true},
  description: {type: String, required: true},
  price: {type: Number, required: true}
});

我的问题是我有一件衬衫,它有不同的尺码选项,如S,M和L.增加这个的最佳方法是什么?此外,如果我包含库存跟踪,我将如何跟踪所有尺寸?在此先感谢,任何和所有的帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

有很多不同的方法可以做到这一点,但最简单的方法可能是通过一些子模式。例如,你可以创建类似的东西:

def column_for_treatment(design_info, factor, value):
    column_name = "{}[T.{}]".format(factor, value)
    return design_info.column_name_indexes[colum_name]

column_for_treatment(x.design_info, "a", "a2")

然后在您的产品定义中:

const ProductVariant = new mongoose.Schema({
  name: String,  // If you're certain this will only ever be sizes, you could make it an enum
  inventory: Number
});

如果您愿意,您还可以使用某些逻辑来确保变体名称对于每个产品等都是唯一的,但这是一个基本实现。