[英]how to find and update objects in an array in mongoDb arrays?
This is the Mongo db collection这是 Mongo 数据库集合
{
"_id": "62035cd8a76fcc0e09f46c22",
"particulars":[
{
"serialNo": 1,
"item": "desk",
"link": "http//",
"images": "http//",
"quantity": 13,
"unitPrice": 100,
"amount": 1300
},
{
"serialNo": 2,
"item": "desk",
"link": "http//",
"images": "http//",
"quantity": 13,
"unitPrice": 100,
"amount": 1300
},
{
"serialNo": 3,
"item": "desk",
"link": "http//",
"images": "http//",
"quantity": 13,
"unitPrice": 100,
"amount": 1300
}
]
}
the array from frontend is this来自前端的数组是这个
procurement_details:[
{
"serialNo": 1,
"item": "ac",
"link": "http//",
"images": "http//",
"quantity": 1,
"unitPrice": 100,
"amount": 100
},
{
"serialNo": 2,
"item": "fan",
"link": "http//",
"images": "http//",
"quantity": 1,
"unitPrice": 100,
"amount": 100
}
]
output i want. output 我要。 Need to replace the matching serialNo objects in particular with the objects in particulars
需要将匹配的 serialNo 对象替换为 particulars 中的对象
particulars:[
{
"serialNo": 1,
"item": "ac",
"link": "http//",
"images": "http//",
"quantity": 1,
"unitPrice": 100,
"amount": 100
},
{
"serialNo": 2,
"item": "fan",
"link": "http//",
"images": "http//",
"quantity": 1,
"unitPrice": 100,
"amount": 100
},
{
"serialNo": 3,
"item": "desk",
"link": "http//",
"images": "http//",
"quantity": 13,
"unitPrice": 100,
"amount": 1300
}
]
i need to replace the objects in particulars with the new objects from procurement_details with respect to the serialNo.so can anyone help me to figure this out and im using nodejs and mongoClient.我需要用 procurement_details 中关于 serialNo 的新对象替换细节中的对象。所以任何人都可以帮助我解决这个问题并使用 nodejs 和 mongoClient。
var bulk=await tickets.initializeOrderedBulkOp() var bulk=await tickets.initializeOrderedBulkOp()
for(procurement_detail of procurement_details){
const resultt=await tickets.find({"_id":mongodb.ObjectId(ticketId),"particulars.serialNo":procurement_detail.serialNo},{projection:{"particulars.$":1,_id:0}}).toArray()
console.log("resultts",resultt);
await bulk.find({"_id":mongodb.ObjectId(ticketId),"particulars.serialNo":procurement_detail.serialNo}).update({
$set:{"particulars.$":procurement_detail},
$push:{ticketHistory:{$each:resultt[0].particulars}}
})
}
await bulk.execute()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.