Как я могу разработать схему для продукта ниже, используя мангуст?

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); 

Например, я выбираю slimline Мне нужно отправить модель (twill, denim, dobby) с изображениями и размерами (28,30,32,36) с цветом на основе цветного (красного, белого) выделения, также мне нужно изменить изображение на основе рубашки на выбранном цвете кто-нибудь дает какое-то предложение? помогите мне двигаться вперед

 //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); -во //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); -во //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.) Динамическое хранение / от controllerа

 //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"); } }) }); 

Ответ @Ratan Uday Kumar прав, но другой, но похожий способ:

 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); 

{strict: false} для будущего! Как? Теперь ваша схема имеет 10 полей, если в будущем вы захотите добавить объект с 12 (что-то большее, чем 10), вы можете это сделать, потому что нет никакой строгости при вставке объектов с этими 10 полями. Даже если меньше полей.

// Пример определения схемы

 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); -во 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); -во 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);