刪除和更新 MongoDB 中的現有記錄?


您只能使用刪除和更新 MongoDB 中現有記錄的 $pull 運算子。我們首先使用文件建立一個集合 −

> db.removeDemo.insertOne(
...    {
...       "UserName" : "Larry",
...       "UserDetails" : [
...          {
...             "_id" : 101,
...             "UserEmailId" : "976Larry@gmail.com",
...          }
...       ]
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cc7f9f88f9e6ff3eb0ce446")
}
> db.removeDemo.insertOne(
...    {
...       "UserName" : "Mike",
...       "UserDetails" : [
...          {
...             "_id" : 102,
...             "UserEmailId" : "Mike121@gmail.com",
...          }
...       ]
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cc7f9f98f9e6ff3eb0ce447")
}

以下查詢使用 find() 方法顯示集合中的所有文件 −

> db.removeDemo.find().pretty();

這將產生以下輸出 −

{
   "_id" : ObjectId("5cc7f9f88f9e6ff3eb0ce446"),
   "UserName" : "Larry",
   "UserDetails" : [
      {
         "_id" : 101,
         "UserEmailId" : "976Larry@gmail.com"
      }
   ]
}
{
   "_id" : ObjectId("5cc7f9f98f9e6ff3eb0ce447"),
   "UserName" : "Mike",
   "UserDetails" : [
      {
         "_id" : 102,
         "UserEmailId" : "Mike121@gmail.com"
      }
   ]
}

現在讓我們實現 $pull 查詢以刪除和更新現有記錄 −

> db.removeDemo.update(
...    {"_id": ObjectId("5cc7f9f98f9e6ff3eb0ce447")},
...    { "$pull": { "UserDetails": {"_id": 102}}}
... );
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

讓我們顯示集合中的文件,以檢查物件是否已刪除 −

> db.removeDemo.find().pretty();

這將產生以下輸出 −

{
   "_id" : ObjectId("5cc7f9f88f9e6ff3eb0ce446"),
   "UserName" : "Larry",
   "UserDetails" : [
      {
         "_id" : 101,
         "UserEmailId" : "976Larry@gmail.com"
      }
   ]
}
{
   "_id" : ObjectId("5cc7f9f98f9e6ff3eb0ce447"),
   "UserName" : "Mike",
   "UserDetails" : [ ]
}

更新於:2019-07-30

113 次瀏覽

開啟你的職業生涯

完成課程以獲得認證

開始
廣告
© . All rights reserved.