两个集合中的Mongoose更新元素

时间:2017-07-19 19:27:48

标签: node.js mongodb mongoose

我有两个架构

var recipeSchema = new mongoose.Schema({
    name: String,
    products: [{
        product: Product,
        weight: Number
    }]
})

var productSchema = new mongoose.Schema({
    name: String,
    weight: Number,
    price: Number
})

module.exports.updateProduct = function(req, res){
    var productId = req.params.productId;

    Product
        .findById(productId)
        .exec(function(err, product){
            if(err){
                console.log("Error finding product");
                res
                    .status(500)
                    .json(err);
            } else if (!product){
                res
                    .status(404)
                    .json({
                        "message": "Product ID not found"
                    });
            } else {
                product.name = req.body.name;
                product.weight = parseInt(req.body.weight);
                product.price = parseFloat(req.body.price).toFixed(2);

                product.save(function(err, updatedProduct){
                    if(err){
                        res
                            .status(500)
                            .json(err);
                    } else {
                        res
                            .status(204)
                            .json();
                    }
                })
            }
        })
}

我想一次更新两个文档中的Product。我写了一段代码来更新产品系列中的Product。但我不知道如何更新Recipe的产品。

例如: 配方:

{
    "_id" : ObjectId("596d281a4b49abec4abd3d48"),
    "name" : "Cake",
    "products" : [ 
        {
            "product" : {
                "_id" : ObjectId("596d27a24b49abec4abd3d3c"),
                "name" : "sugar",
                "price" : 12.34
            },
            "weight" : 100
        }
    ]
}

产品

{
    "_id" : ObjectId("596d27a24b49abec4abd3d3c"),
    "name" : "sugar",
    "price" : 12.34
}

我想立即更新Product和Recipe的产品。 有可能吗?

0 个答案:

没有答案