如何在 MongoDB 陣列中刪除元素?


要刪除元素並更新,在 MongoDB 中使用 $pull。如果與指定條件匹配,$pull 運算子會從現有陣列中刪除該值的全部例項。

我們首先建立一個帶有文件的集合-

db.demo541.insertOne({"software":{"services":["gmail","facebook","yahoo"]}});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e8ca845ef4dcbee04fbbc11")
}
> db.demo541.insertOne({"software":{"services":["whatsapp","twitter"]}});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e8ca85cef4dcbee04fbbc12")
}

使用 find() 方法顯示集合中的所有文件-

> db.demo541.find();

這將生成以下輸出-

{ "_id" : ObjectId("5e8ca845ef4dcbee04fbbc11"), "software" : { "services" : [ "gmail", "facebook", "yahoo" ] } }
{ "_id" : ObjectId("5e8ca85cef4dcbee04fbbc12"), "software" : { "services" : [ "whatsapp", "twitter" ] } } 

以下是 MongoDB 陣列中刪除元素的查詢-

> db.demo541.update({ _id: ObjectId("5e8ca845ef4dcbee04fbbc11") },
...    { $pull: { 'software.services': "yahoo" }}
... );
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

使用 find() 方法顯示集合中的所有文件-

> db.demo541.find();

這將生成以下輸出-

{ "_id" : ObjectId("5e8ca845ef4dcbee04fbbc11"), "software" : { "services" : [ "gmail", "facebook" ] } }
{ "_id" : ObjectId("5e8ca85cef4dcbee04fbbc12"), "software" : { "services" : [ "whatsapp", "twitter" ] } }

更新於: 14-May-2020

17K+ 檢視

開啟你的職業生涯

完成課程獲認證

開始
廣告