Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Mongoose更新两个集合中的元素_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js Mongoose更新两个集合中的元素

Node.js Mongoose更新两个集合中的元素,node.js,mongodb,mongoose,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 }) modul

我有两个模式

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();
                    }
                })
            }
        })
}
我想同时更新两个文档中的产品。我写了一段代码来更新产品集合中的产品。但我不知道如何更新配方的产品

例如: 配方:

产品

{
    "_id" : ObjectId("596d27a24b49abec4abd3d3c"),
    "name" : "sugar",
    "price" : 12.34
}
我想立即更新产品和配方的产品。
有可能吗?

没有。您可以使用Promise.all在两者都已更新时执行操作,但仅此而已:(
{
    "_id" : ObjectId("596d27a24b49abec4abd3d3c"),
    "name" : "sugar",
    "price" : 12.34
}