我的問題與這個問題LINK有某種關系。然而這是我的問題..
{
"_id": ObjectId("4d2d8deff4e6c1d71fc29a07"),
"comments": [{
"name": "Len",
"_id": ObjectId("6241108375ed952ceb0187e3"),
"data": [{
"name":"Len",
"confirmation_likes":"false",
"_id":ObjectId("6241102d75ed952ceb0187dd")
},{
"name":"Lilipad",
"confirmation_likes":"false",
"_id":ObjectId("6241102d75ed952ceb0187da")
}]
} {
"name": "Lilipad",
"_id": ObjectId("6241108375ed952ceb0187e5"),
"data": [{
"name":"Len",
"confirmation_likes":"false",
"_id":ObjectId("6241102d75ed952ceb0187dd")
},{
"name":"Lilipad",
"confirmation_likes":"false",
"_id":ObjectId("6241102d75ed952ceb0187da")
}]
} {
"name": "Leni Robredo",
"_id": ObjectId("6241108375ed952ceb0187e9"),
"data": [{
"name":"Len",
"confirmation_likes":"false",
"_id":ObjectId("6241102d75ed952ceb0187dd")
},{
"name":"Lilipad",
"confirmation_likes":"false",
"_id":ObjectId("6241102d75ed952ceb0187da")
}]
}
...
]
}
現在,我想要在這里發生的是當您收到_id諸如ObjectId("6241108375ed952ceb0187e3"), ObjectId("6241108375ed952ceb0187e5"),之類的評論時ObjectId("6241108375ed952ceb0187e9")。我想為他們每個人更新一組新資料,但我很困惑我將如何與操作員一起做。這就是我的輸入和輸出的作業方式。
parent_id = ObjectId("4d2d8deff4e6c1d71fc29a07")
sub_id = ObjectId("6241108375ed952ceb0187e5")
new_data = [{
"name":"Len",
"confirmation_likes":"false",
"_id":ObjectId("6241102d75ed952ceb0187dd")
},{
"name":"Lilipad",
"confirmation_likes":"false",
"_id":ObjectId("6241102d75ed952ceb0187da")
},{
"name":"Len",
"confirmation_likes":"false",
"_id":ObjectId("6241102d75ed952ceb012131")
}]
輸出
{
"_id": ObjectId("4d2d8deff4e6c1d71fc29a07"),
"comments": [{
"name": "Len",
"_id": ObjectId("6241108375ed952ceb0187e3"),
"data": [{
"name":"Len",
"confirmation_likes":"false",
"_id":ObjectId("6241102d75ed952ceb0187dd")
},{
"name":"Lilipad",
"confirmation_likes":"false",
"_id":ObjectId("6241102d75ed952ceb0187da")
}]
} {
"name": "Lilipad",
"_id": ObjectId("6241108375ed952ceb0187e5"),
"new_data": [{
"name":"Len",
"confirmation_likes":"false",
"_id":ObjectId("6241102d75ed952ceb0187dd")
},{
"name":"Lilipad",
"confirmation_likes":"false",
"_id":ObjectId("6241102d75ed952ceb0187da")
},{
"name":"Len",
"confirmation_likes":"false",
"_id":ObjectId("6241102d75ed952ceb012131")
}]
} {
"name": "Leni Robredo",
"_id": ObjectId("6241108375ed952ceb0187e9"),
"data": [{
"name":"Len",
"confirmation_likes":"false",
"_id":ObjectId("6241102d75ed952ceb0187dd")
},{
"name":"Lilipad",
"confirmation_likes":"false",
"_id":ObjectId("6241102d75ed952ceb0187da")
}]
}
...
]
}
如您所見,我使用 sub_id 來獲取要更新其資料的陣列項的 id..因為我可以使用相同的名稱但不能使用 id 所以這就是我使用 _id 的陣列項的原因comments。
現在,如果我想在評論陣列的所有 id 中傳遞新的所有資料。我已經為此準備了一個回圈,可以說這樣的事情。
list_comment_id = [ObjectId("6241108375ed952ceb0187e3"),
ObjectId("6241108375ed952ceb0187e5"),ObjectId("6241108375ed952ceb0187e9")]
parent_id = ObjectId("4d2d8deff4e6c1d71fc29a07")
new_data = [{
"name":"Len",
"confirmation_likes":"false",
"_id":ObjectId("6241102d75ed952ceb0187dd")
},{
"name":"Lilipad",
"confirmation_likes":"false",
"_id":ObjectId("6241102d75ed952ceb0187da")
},{
"name":"Len",
"confirmation_likes":"false",
"_id":ObjectId("6241102d75ed952ceb012131")
}]
這樣我就會傳遞我list_comment_id想要的所有資料..
我已經在我的代碼中嘗試過這樣的事情
router.route('/append/:id').put((req,res) => {
const { _id, sub_id, data} = req.body
const main_id = req.params.id
// Sub_id for comments _id items
COMMENT.updateOne(
{
_id:main_id,
"comments._id" : sub_id
},
{
$set:{
data:data
}
}
).then((comments) => res.json("Likes List People Updated") )
.catch(err => console.log(err))
})
誰能幫幫我,謝謝??我會很高興的。
uj5u.com熱心網友回復:
也許是這樣的:
db.collection.update({
_id: ObjectId("4d2d8deff4e6c1d71fc29a07")
},
{
$set: {
"comments.$[x]": {
"name": "Lilipad",
"_id": ObjectId("6241108375ed952ceb0187e5"),
"new_data": [
{
"name": "Len",
"confirmation_likes": "false",
"_id": ObjectId("6241102d75ed952ceb0187dd")
},
{
"name": "Lilipad",
"confirmation_likes": "false",
"_id": ObjectId("6241102d75ed952ceb0187da")
},
{
"name": "Len",
"confirmation_likes": "false",
"_id": ObjectId("6241102d75ed952ceb012131")
}
]
}
}
},
{
arrayFilters: [
{
"x._id": ObjectId("6241108375ed952ceb0187e5")
}
]
})
解釋:創建 arrayFilters x 以識別需要更新的元素并使用必要的值進行更新。
操場
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/451105.html
上一篇:TypeScript:只能使用“esModuleInterop”標志默認匯入
下一篇:請問誰能幫我找出錯誤或錯誤?
