{
"_id": "5d845d17008e24001223005d",
"product_brand_name": "WAREHOUSE",
"product_sku": "45203591500",
"product_name": "UTILITY PIQUE SHIRT",
"product_description": "Fabric: Main, 48% nylon, 52% viscose\r\nWash Care: Machine wash",
"product_price": 69,
"product_attribute": [{
"attribute_name": "color",
"attribute_value": "White / Stone"
},
{
"attribute_name": "size",
"attribute_value": "12"
}
],
"product_images": [{
"image_name": "sample Image",
"image_url": null
}],
"product_volumes": [{
"volume_location": {
"_id": "5d8491ebcc31ba001bdc9b88",
"location_name": "nasscom bangalore",
"location_Address": "Bangalore"
},
"quantity": 4
},
{
"volume_location": {
"_id": "5d8491ebcc31ba001bdc9b87",
"location_name": "nasscom Delhi",
"location_Address": "Delhi"
},
"quantity": 3
}
]
}
это коллекция продуктов, которую я хочу обновить.
Когда пользователь покупает какой-либо продукт в любом месте, я хочу вычесть количество приобретенного продукта из общего количества продукта в этом местоположении.
, поэтому я пытаюсь найти и обновить продукт с идентификатором продукта и product_volumes.volume_location.location_name и настройкой product_volumes. $. Количество с разницей текущего количества и приобретенного количества.
это код, который я пытаюсь.
exports.purchase = function (req, res) {
Customer.findByIdAndUpdate(req.body.customer, { $set: { "customer_cart": null } }).then(function (doc) {
const prods = req.body.products;
let requests = prods.reduce((promiseChain, item) => {
return promiseChain.then(() => new Promise((resolve) => {
console.log("Promise started");
Product.findByIdAndUpdate({
"_id" : item.product,
"product_volumes.volume_location.location_name": item.pickup_location.location_name
},{
$set:{
"product_volumes.$.quantity" : { $subtract: [ product_volumes.$.quantity, item.product_quantity ] }
}
}).then(resolve)
}));
}, Promise.resolve());
requests.then(() => {
console.log("done");
res.send(req.body);
})
});
};
это ошибка, которую я получаю.
The positional operator did not find the match needed from the query.
at Connection.<anonymous> (/usr/src/app/node_modules/mongodb-core/lib/connection/pool.js:443:61)
at Connection.emit (events.js:198:13)
at processMessage (/usr/src/app/node_modules/mongodb-core/lib/connection/connection.js:364:10)
at Socket.<anonymous> (/usr/src/app/node_modules/mongodb-core/lib/connection/connection.js:533:15)
at Socket.emit (events.js:198:13)
at addChunk (_stream_readable.js:288:12)
at readableAddChunk (_stream_readable.js:269:11)
at Socket.Readable.push (_stream_readable.js:224:10)
at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)