sql >> データベース >  >> NoSQL >> MongoDB

マングースを使用して以下の製品のスキーマを設計するにはどうすればよいですか?

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


    1. 一度に複数のインデックスを作成する

    2. brew install mongodbエラー:「sudobrewinstall」を臆病に拒否するMac OSX Lion

    3. MongoDBelemMatchサブドキュメント

    4. Mongo集計を使用して値の合計を計算する