【发布时间】:2022-03-01 20:59:19
【问题描述】:
这是 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
}
]
}
前端的数组是这样的
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
}
]
我想要的输出。需要将匹配的serialNo对象特别替换为具体对象
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
}
]
我需要用来自progression_details 的关于serialNo.的新对象替换具体的对象。所以任何人都可以帮助我解决这个问题并且我正在使用nodejs 和mongoClient。
【问题讨论】:
-
您可能必须遍历前端数组,并为每个对象对集合中的相应文档执行更新操作。您还可以考虑使用 Bulk Write 操作 - 这样您就可以将所有更新作为单个数据库调用提交。
-
你需要保留元素的顺序吗?
-
不。顺序无关紧要。
标签: node.js arrays mongodb aggregation-framework