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

Làm cách nào để xóa tất cả tài liệu khỏi bộ sưu tập ngoại trừ một tài liệu duy nhất trong MongoDB?

Để xóa tất cả tài liệu khỏi bộ sưu tập ngoại trừ một tài liệu trong MongoDB, hãy sử dụng remove () dựa trên một số điều kiện. Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu. Sau đây là truy vấn

>db.removeAllDocumentsExceptOneDemo.insertOne({"StudentName":"Larry","StudentAge":21});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9c9de42d66697741252478")
}
>db.removeAllDocumentsExceptOneDemo.insertOne({"StudentName":"Mike","StudentAge":21,"StudentCountryName":"US"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9c9dea2d66697741252479")
}
>db.removeAllDocumentsExceptOneDemo.insertOne({"StudentName":"Chris","StudentAge":24,"StudentCountryName":"AUS"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9c9def2d6669774125247a")
}

Sau đây là truy vấn để 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 ()

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

Điều này sẽ tạo ra kết quả sau

{
   "_id" : ObjectId("5c9c9de42d66697741252478"),
   "StudentName" : "Larry",
   "StudentAge" : 21
}
{
   "_id" : ObjectId("5c9c9dea2d66697741252479"),
   "StudentName" : "Mike",
   "StudentAge" : 21,
   "StudentCountryName" : "US"
}
{
   "_id" : ObjectId("5c9c9def2d6669774125247a"),
   "StudentName" : "Chris",
   "StudentAge" : 24,
   "StudentCountryName" : "AUS"
}

Sau đây là truy vấn để xóa tất cả tài liệu khỏi bộ sưu tập ngoại trừ một tài liệu duy nhất, tức là với StudentAge 24

> db.removeAllDocumentsExceptOneDemo.remove({ StudentAge: { $ne: 24 } } );
WriteResult({ "nRemoved" : 2 })

Hãy để chúng tôi kiểm tra tất cả các tài liệu bây giờ. Sau đây là truy vấn

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

Sau đây là đầu ra chỉ hiển thị một tài liệu duy nhất

{
   "_id" : ObjectId("5c9c9def2d6669774125247a"),
   "StudentName" : "Chris",
   "StudentAge" : 24,
   "StudentCountryName" : "AUS"
}