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
}