如何從 MongoDB 文件中徹底移除一個欄位?


你可以使用 $unset 運算子從 MongoDb 文件中徹底移除一個欄位。語法如下

db.yourCollectionName.update({}, {$unset: {yourFieldName:1}}, false, true);

為了理解以上語法,讓我們建立一個包含某些文件的集合。建立包含文件的集合的查詢如下

>
db.removeFieldCompletlyDemo.insertOne({"StudentName":"Larry","StudentFavouriteSubject":
["Java","C","C++","Python"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c6ef55a6fd07954a48906a3")
}
>
db.removeFieldCompletlyDemo.insertOne({"StudentName":"Mike","StudentFavouriteSubject":
["Javascript","HTML5","CSS3"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c6ef57b6fd07954a48906a4")
}
>
db.removeFieldCompletlyDemo.insertOne({"StudentName":"Sam","StudentFavouriteSubject":
["MongoDB","MySQL","SQL Server"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c6ef59c6fd07954a48906a5")
}

在集合中顯示所有文件,可藉助 find() 方法。查詢如下

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

輸出結果如下

{
   "_id" : ObjectId("5c6ef55a6fd07954a48906a3"),
   "StudentName" : "Larry",
   "StudentFavouriteSubject" : [
      "Java",
      "C",
        "C++",
      "Python"
   ]
}
{
   "_id" : ObjectId("5c6ef57b6fd07954a48906a4"),
   "StudentName" : "Mike",
   "StudentFavouriteSubject" : [
      "Javascript",
      "HTML5",
      "CSS3"
   ]
}
{
   "_id" : ObjectId("5c6ef59c6fd07954a48906a5"),
   "StudentName" : "Sam",
   "StudentFavouriteSubject" : [
      "MongoDB",
      "MySQL",
      "SQL Server"
   ]
}

從文件中移除欄位“StudentFavouriteSubject”。查詢如下

> db.removeFieldCompletlyDemo.update({}, {$unset: {StudentFavouriteSubject:1}}, false, true);
WriteResult({ "nMatched" : 3, "nUpserted" : 0, "nModified" : 3 })

我們已經從文件中移除了“StudentFavouriteSubject”欄位。我們現在顯示集合中的所有文件來驗證。

查詢如下

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

輸出結果如下

{ "_id" : ObjectId("5c6ef55a6fd07954a48906a3"), "StudentName" : "Larry" }
{ "_id" : ObjectId("5c6ef57b6fd07954a48906a4"), "StudentName" : "Mike" }
{ "_id" : ObjectId("5c6ef59c6fd07954a48906a5"), "StudentName" : "Sam" }

更新於:30-Jul-2019

870 次瀏覽量

開啟您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.