Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Cách xóa một Document trong MongoDB bằng Java

Bạn có thể xóa một document khỏi collection MongoDB bằng phương thức remove() (trong shell) hoặc deleteOne() (trong Java driver).

Cú pháp (Shell)

db.coll.remove(DELETE_CRITERIA)

Trong đó db là database, coll là tên collection.

Ví dụ Shell

Giả sử collection students có các document:

{name:"Ram", age:26, city:"Mumbai"}
{name:"Roja", age:28, city:"Hyderabad"}
{name:"Ramani", age:35, city:"Delhi"}

Xóa document có name = "Ram":

> db.test.remove({'name': 'Ram'})
WriteResult({ "nRemoved" : 1 })
> db.test.find()
{ "_id" : ObjectId("5e8700"), "name" : "Roja", "age" : 28, "city" : "Hyderabad" }
{ "_id" : ObjectId("5e4161"), "name" : "Ramani", "age" : 35, "city" : "Delhi" }
{ "_id" : ObjectId("5e8161"), "name" : "Ramani", "age" : 35, "city" : "Delhi" }

Chương trình Java

Trong Java, dùng phương thức deleteOne() của interface com.mongodb.client.MongoCollection.

Các bước:

  • Cài MongoDB và thêm dependency mongo-java-driver vào pom.xml.
  • Tạo MongoClient, kết nối database, lấy collection.
  • Gọi deleteOne() với bộ lọc (filter) chỉ định điều kiện xóa.

Ví dụ Java

import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import java.util.Iterator;
import org.bson.Document;
import com.mongodb.MongoClient;

public class DeletingDocuments {
    public static void main(String args[]) {
        // Tạo MongoDB client
        MongoClient mongo = new MongoClient("localhost", 27017);
        // Kết nối database
        MongoDatabase database = mongo.getDatabase("myDatabase");
        // Lấy collection
        MongoCollection<Document> collection = database.getCollection("students");
        // Xóa document name = "Ram"
        collection.deleteOne(Filters.eq("name", "Ram"));
        System.out.println("Xóa document thành công...");
        // Hiển thị các document còn lại
        FindIterable<Document> iterDoc = collection.find();
        Iterator it = iterDoc.iterator();
        System.out.println("Các document còn lại:");
        while (it.hasNext()) {
            System.out.println(it.next());
        }
    }
}

Kết quả

Xóa document thành công...
Các document còn lại:
Document{{_id=5e871141a89ad86b7b8ad229, name=Robert, age=27, city=Vishakhapatnam}}
Document{{_id=5e871141a89ad86b7b8ad22a, name=Rhim, age=30, city=Delhi}}