首頁 > 資料庫 > MongoDB > 如何在 MongoDB 中透過索引刪除陣列元素?

如何在 MongoDB 中透過索引刪除陣列元素?

PHPz
發布: 2023-09-08 12:17:02
轉載
976 人瀏覽過

如何在 MongoDB 中通过索引删除数组元素?

您可以使用以下兩個步驟透過索引刪除數組元素-

第一步如下-

db.yourCollectionName.update({}, {$unset : {"yourArrayFieldName.yourIndexValue" : 1 }});
登入後複製

上述語法將在“yourIndexValue”的位置放置一個空值。之後,您需要從數組欄位中提取空值以從數組元素中刪除。

第二步如下 -

db.yourCollectionName.update({}, {$pull : {"yourArrayFieldName" : null}});
登入後複製

為了實作語法,讓我們用文件建立一個集合。使用文件建立集合的查詢如下 -

> db.removeArrayElementByItsIndexDemo.insertOne({"InstructorName":"David",
   "InstructorAge":28,"InstructorSubject":["MongoDB","MySQL","Java","SQL Server","PL/SQL"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8abbfc6cea1f28b7aa0803")
}
登入後複製

借助 find() 方法顯示集合中的所有文件。查詢如下 -

> db.removeArrayElementByItsIndexDemo.find().pretty();
登入後複製
登入後複製

以下是輸出 -

{
   "_id" : ObjectId("5c8abbfc6cea1f28b7aa0803"),
   "InstructorName" : "David",
   "InstructorAge" : 28,
   "InstructorSubject" : [
      "MongoDB",
      "MySQL",
      "Java",
      "SQL Server",
      "PL/SQL"
   ]
}
登入後複製

這是透過索引刪除陣列元素的查詢。

第1 步- 查詢如下-

> db.removeArrayElementByItsIndexDemo.update({}, {$unset : {"InstructorSubject.2" : 1 }});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
登入後複製

#第2步驟 - 查詢如下-

> db.removeArrayElementByItsIndexDemo.update({}, {$pull : {"InstructorSubject" : null}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
登入後複製

讓我們檢查一下數組元素“Java”是否已刪除。查詢如下 -

> db.removeArrayElementByItsIndexDemo.find().pretty();
登入後複製
登入後複製

以下是輸出 -

{
   "_id" : ObjectId("5c8abbfc6cea1f28b7aa0803"),
   "InstructorName" : "David",
   "InstructorAge" : 28,
   "InstructorSubject" : [
      "MongoDB",
      "MySQL",
      "SQL Server",
      "PL/SQL"
   ]
}
登入後複製

查看範例輸出,陣列元素「Java」已完全刪除。

以上是如何在 MongoDB 中透過索引刪除陣列元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板