[英]MongoDB update query in subarray
另一個對象數組中的對象數組的更新。
我正在處理的 mongodb 字段:
otherFields: values,
tasks: [
{
_id: mongodb.objectID(),
title: string,
items:[{
_id: mongodb.objectID(),
title: string,
completed: boolean //field need to be update.
}]
},
{}...
],
otherFields: value
我需要使用task_id和item_id查找文檔並更新任務項目中的已完成字段。 使用 mongoose findOneAndUpdate方法
const path = "tasks.$.items." + item_id + "completed";
collectionName.findOneAndUpdate(
{ _id: req.user._id, "tasks._id": taskID },
{ $set: { [path]: true }});
以上查詢無效!!!
無需使用多個查詢條件,因為您想更新具有唯一 ID 的特定項目。 因此,您可以使用類似的東西:
collectionName.findOneAndUpdate(
{ 'tasks.items._id': itemID },
...
);
請記住,這種結構遠未優化,因為它基本上會查看整個數據庫......
現在我想起來了,您也會對更新有疑問,因為文檔中有兩個嵌套的 arrays。 在此處閱讀更多內容: 如何更新 mongodb 中的多個陣列元素
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.