2017-06-23 42 views
0
name: aaaa shirts 
category: shirts 
subcategory: [{ 
     type: slimline, 
     model: [{ 
       "type": "twill", 
       "colour": [{ 
         "name": "red", 
         "image": "red.jpg" 
        }, 
        { 
         "name": "white", 
         "image": "white.jpg" 
        } 
       ], 
       "size": [{ 
         "val": "32", 
         "price": "1000" 
        }, 
        { 
         "val": "24", 
         "price": "1244" 
        } 
       ] 
      }, 
      { 
       "type": "denim", 
       "colour": [{ 
         "name": "red", 
         "image": "red.jpg" 
        }, 
        { 
         "name": "white", 
         "image": "white.jpg" 
        } 
       ], 
       "size": [{ 
         "val": "32", 
         "price": "1000" 
        }, 
        { 
         "val": "24", 
         "price": "1244" 
        } 
       ] 
      } 

     ] 
    }, 
    { 
     type: superslim, 
     model: [{ 
       "type": "denim", 
       "colour": [{ 
         "name": "red", 
         "image": "red.jpg" 
        }, 
        { 
         "name": "white", 
         "image": "white.jpg" 
        } 
       ], 
       "size": [{ 
         "val": "32", 
         "price": "1000" 
        }, 
        { 
         "val": "24", 
         "price": "1244" 
        } 
       ] 
      }, 
      { 
       "type": "dobby", 
       "colour": [{ 
         "name": "red", 
         "image": "red.jpg" 
        }, 
        { 
         "name": "white", 
         "image": "white.jpg" 
        } 
       ], 
       "size": [{ 
         "val": "32", 
         "price": "1000" 
        }, 
        { 
         "val": "24", 
         "price": "1244" 
        } 
       ] 
      } 

     ] 
    } 
] 

以上是我的产品设计示例,我想为此创建架构。如何为上述产品创建架构。如何使用猫鼬为以下产品设计架构?

如何修改我的架构设计

'use strict'; 

import mongoose from 'mongoose'; 
var Schema = mongoose.Schema, 
    ObjectId = Schema.ObjectId; 

var ProductSchema = new mongoose.Schema({ 
    name   :  String, 
    category  :  String, 
    subcategory :  ?? 
    description : String, 
    created_at : { type: Date }, 
    updated_at : { type: Date, default: Date.now }, 
    updated:  {type: Date, default: Date.now} 
}, { versionKey: false }); 


export default mongoose.model('Product', ProductSchema); 

例如我选择用彩色图像和大小(28,30,32,36)超薄我需要发送模型(斜纹,牛仔布,提花)基于颜色(红色,白色)的选择也需要根据所选颜色更改衬衫图片 任何一个给出一些建议?帮助我前进

+0

对于数组u使用[类型]等[字符串] –

回答

1
//Schema Defination and model.js 
var ProductSchema = new mongoose.Schema({ 
    name:String, 
    category:String, 
    subcategory:[{ 
     type:String, 
     model:[{ 
      type:String, 
      colour:[{ 
       name:String, 
       image:String 
      }], 
      size:[{ 
       val:Number, 
       price:Number 
      }] 
     }] 
    }], 
    description:String, 
    created_at:{ type: Date }, 
    updated_at:{ type: Date, default: Date.now }, 
    updated:{type: Date, default: Date.now} 
}, { versionKey: false },{strict: false}); 
export default mongoose.model('Product', ProductSchema); 

存储产品详细信息 1.静态贮藏

//Static Storing into Database 
var ProductSchema = require('path/to/ProductSchema.js'); 
app.post('/Store_Product_Details',function (req,res) { 
    var Name = 'Mens Formal Shirts'; 
     var Category = 'Shirts'; 
    var SubCategory = [{ 
     type: "slimline", 
     model: [{ 
      "type": "twill", 
      "colour": [{ 
       "name": "red", 
       "image": "red.jpg" 
      }, 
       { 
        "name": "white", 
        "image": "white.jpg" 
       } 
      ], 
      "size": [{ 
       "val": 32, 
       "price": "1000" 
      }, 
       { 
        "val": 24, 
        "price": "1244" 
       } 
      ] 
     }, { 
      "type": "denim", 
      "colour": [{ 
       "name": "red", 
       "image": "red.jpg" 
      }, 
       { 
        "name": "white", 
        "image": "white.jpg" 
       } 
      ], 
      "size": [{ 
       "val": 32, 
       "price": 1000 
      }, 
       { 
        "val": 24, 
        "price": 1244 
       } 
      ] 
     } 

     ] 
    },{ 
     type: "superslim", 
     model: [{ 
      "type": "denim", 
      "colour": [{ 
       "name": "red", 
       "image": "red.jpg" 
      },{ 
       "name": "white", 
       "image": "white.jpg" 
      } 
      ], 
      "size": [{ 
       "val": 32, 
       "price": 1000 
      },{ 
       "val": 24, 
       "price": 1244 
      } 
      ] 
     },{ 
      "type": "dobby", 
      "colour": [{ 
       "name": "red", 
       "image": "red.jpg" 
      }, 
       { 
        "name": "white", 
        "image": "white.jpg" 
       } 
      ], 
      "size": [{ 
       "val": 32, 
       "price": 1000 
      }, 
       { 
        "val": 24, 
        "price": 1244 
       } 
      ] 
     } 

     ] 
    } 
    ] 
    var Description = 'Mens Formal Wear'; 
    var date = new Date(); 
    var ProductData = new ProductSchema({ 
     name:Name, 
     category:Category, 
     subcategory:SubCategory, 
     description:Description, 
     created_at:date 
    }) 
    ProductData.save(function (err,Status) { 
     if(!err){ 
      res.send("Product Stored Successfully"); 
     }else { 
      res.send("Oops! Something went Wrong"); 
     } 
    }) 
}); 

2.)动态存储/从控制器

//Dynamically Storing or from Controller 
var ProductSchema = require('path/to/ProductSchema.js'); 
app.post('/Store_Product_Details',function (req,res) { 
    var Name = req.body.Name; 
    var Category = req.body.Category; 
    var SubCategory = req.body.SubCategory; 
    var Description = req.body.Description; 
    var date = new Date(); 
    var ProductData = new ProductSchema({ 
     name:Name, 
     category:Category, 
     subcategory:SubCategory, 
     description:Description, 
     created_at:date 
    }) 
    ProductData.save(function (err,Status) { 
     if(!err){ 
      res.send("Product Stored Successfully"); 
     }else { 
      res.send("Oops! Something went Wrong"); 
     } 
    }) 
}); 
+0

更新回答提问者要求 –

+0

需要更多帮助 –

+0

@itsme我该如何帮助你 –

0

//模式定义实例

var ProductSchema = new mongoose.Schema({ 
    name:String, 
    category:String, 
    subcategory:[{ 
     type:String, 
     model:[{ 
      type:String, 
      colour:[{ 
       name:String, 
       image:String 
      }], 
      size:[{ 
       val:Number, 
       price:Number 
      }] 
     }] 
    }], 
    description:String, 
    created_at:{ type: Date }, 
    updated_at:{ type: Date, default: Date.now }, 
    updated:{type: Date, default: Date.now} 
}, { versionKey: false },{strict: false}); 

export default mongoose.model('Product', ProductSchema); 
+0

可以请举例子文档 –

+0

去旁边的链接了解更多详情http://mongoosejs.com/docs/schematypes.html –

+0

我想要h ow我可以为此插入对象 –

0

@Ratan乌代库马尔的答案是正确的,但另一个但类似的方法是:

var ProductSchema = new mongoose.Schema({ 
    category  :{type:String}, 
    name   :{type:String}, 
    description :{type:String}, 
    type   :[{type:String}], 
    fabric  :[{type:String}], 
    size   :[{type:Number}], 
    color   :[{type:String}], 
    created_at :{ type: Date }, 
    updated_at :{ type: Date, default: Date.now }, 
    updated:  {type: Date, default: Date.now} 
}, { versionKey: false }, {strict: false}); 

export default mongoose.model('Product', ProductSchema); 

{严格:假}是未来!怎么样?现在你的模式有10个字段,如果将来你想添加一个有12个(超过10个)的对象,你可以这样做,因为没有严格的插入这10个字段的对象。即使更少的领域。在数据库集合

+0

如果我制作上述架构产品将如何存储? –

+0

正是你拯救他们的方式!有了这些领域或者没有那么完全适合你!因为它不严格! –

+0

*他们(上述通讯中的错误) –