【问题标题】:Mongoose product category design?猫鼬产品品类设计?
【发布时间】:2017-02-05 18:31:37
【问题描述】:

我想创建一个电子商务类型的数据库,其中包含使用 Mongodb 和 Mongoose 的产品的产品和类别。我正在考虑有两个系列,一个用于产品,一个用于类别。网上挖了一下,觉得分类应该是这样的:

var categorySchema = {
  _id: { type: String },
  parent: {
    type: String,
    ref: 'Category'
  },
  ancestors: [{
    type: String,
    ref: 'Category'
  }]
};

我希望能够按类别查找所有产品。例如“查找所有电话”。但是,类别可能会被重命名、更新等。实现产品集合的最佳方式是什么?在 SQL 中,产品将包含一个类别的外键。

非常感谢插入和查找文档的代码示例!

【问题讨论】:

    标签: mongodb mongoose


    【解决方案1】:

    为什么不保持简单并执行以下操作?

    var product_Schema = {
      phones:[{
               price:Number,
               Name:String,
             }],
          TV:[{
               price:Number,
               Name:String
             }]
    };
    

    然后使用投影,您可以轻松返回给定密钥的产品。例如:

    db.collection.find({},{TV:1,_id:0},function(err,data){
        if (!err) {console.log(data)}
    })
    

    当然,正确的架构设计将取决于您计划如何查询/插入/更新数据,但使用 mongo 保持简单通常是有回报的。

    【讨论】:

    • 两个原因:首先是类别文档的层次结构。第二个产品结构复杂,可能会改变类别。
    • 这听起来像是确定架构设计的相关信息。也许您可以使用更多信息和存储在类别级别的所有字段和存储在产品级别的所有字段的示例来更新问题。另外,我会提到您计划多久更改一次类别名称,以及您计划多久查询一次以获取属于某个类别的产品列表。一个产品可以属于多个类别吗?如果没有更多信息,任何回应都会被高度概括。
    猜你喜欢
    • 2012-09-16
    • 2017-11-26
    • 1970-01-01
    • 2022-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-27
    • 1970-01-01
    相关资源
    最近更新 更多