Вот мой сохраненный документ
"_id": ObjectId("5e26be38c13b7149d0a95111"),
"isApproved": false,
"vendorOrder": [
{
"_id": ObjectId("5e26be38c13b7149d0a95113"),
"publicationCode": "TOI",
"publicationName": "Times of India",
"editionName": "chennai city",
"productCode": "TCE1",
"subscriptionCopies": 70,
"tradeCopies": 40
},
{
"_id": ObjectId("5e26be38c13b7149d0a95112"),
"publicationCode": "ET",
"publicationName": "Economic Times",
"editionName": "chennai city",
"productCode": "ECE1",
"subscriptionCopies": 20,
"tradeCopies": 100
}
],
"frequency": "TH",
"orderCreatedBy": ObjectId("5e25550a3405363bc4bf86c1"),
"submittedTo": ObjectId("5e2555363405363bc4bf86c2"),
Вот мой мон go запрос оболочки:
db.orders.updateOne(
{
"_id": ObjectId("5e26be38c13b7149d0a95111"),
"submittedTo":ObjectId("5e2555363405363bc4bf86c2"),
"vendorOrder.productCode": "TCE1"
},
{ $set:{"vendorOrder.$.tradeCopies":80 }
})
Но , обновляется только один элемент MOREOVER этот query
не работает в nodejs.
Nodejs запрос:
const { orderId, dealerId, productCode, tradeCopies } = req.body;
try {
const orders = await Order.updateOne(
{
_id: orderId,
submittedTo: dealerId,
vendorOrder.productCode: productCode
}, {
$set: { vendorOrder.$.tradeCopies: tradeCopies }
}
)
} catch(ex) {
console.log(ex);
}
Цель: обновить vendorOrder:[{tradeCopies}]
всех элементов в одном go уникальном коде - это код продукта, т.е. я хочу обновить tradeCopies
в vendorOrder
, откуда productCode
, orderId
, dealerId
req.body
и tradeCopies
должны обновляться против productCodes
.