Computer >> Máy Tính >  >> Lập trình >> MongoDB

Làm cách nào để xóa hoàn toàn một trường khỏi tài liệu MongoDB?

Bạn có thể sử dụng toán tử $ unset để xóa hoàn toàn một trường khỏi tài liệu MongoDb. Cú pháp như sau:

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

Để hiểu cú pháp trên, chúng ta hãy tạo một bộ sưu tập với một số tài liệu. Truy vấn để tạo một bộ sưu tập với các tài liệu như sau:

>
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")
}

Hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find (). Truy vấn như sau:

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

Sau đây là kết quả:

{
   "_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"
   ]
}

Xóa trường "StudentFavouriteSubject" khỏi tài liệu. Truy vấn như sau:

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

Chúng tôi đã xóa trường "StudentFavouriteSubject" khỏi tài liệu. Bây giờ, hãy để chúng tôi hiển thị tất cả các tài liệu từ một bộ sưu tập để xác minh.

Truy vấn như sau:

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

Sau đây là kết quả:

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