如何在java中删除mongodb集合中的所有文档

2022-09-02 02:37:10

我想用java删除集合中的所有文档。这是我的代码:

MongoClient client = new MongoClient("10.0.2.113" , 27017);
        MongoDatabase db = client.getDatabase("maindb");
        db.getCollection("mainCollection").deleteMany(new Document());

这是正确的方法吗?

我使用的是MongoDB 3.0.2


答案 1

使用 API >= 3.0:

MongoClient mongoClient = new MongoClient("127.0.0.1" , 27017);
MongoDatabase db = mongoClient.getDatabase("maindb");
db.getCollection("mainCollection").deleteMany(new Document());

要删除集合(文档索引),您仍然可以使用:

db.getCollection("mainCollection").drop();

查看 https://docs.mongodb.org/getting-started/java/remove/#remove-all-documents


答案 2

要删除所有文档,请使用 BasicDBObject 或 DBCursor,如下所示:

MongoClient client = new MongoClient("10.0.2.113" , 27017);
MongoDatabase db = client.getDatabase("maindb");
MongoCollection collection = db.getCollection("mainCollection")

BasicDBObject document = new BasicDBObject();

// Delete All documents from collection Using blank BasicDBObject
collection.deleteMany(document);

// Delete All documents from collection using DBCursor
DBCursor cursor = collection.find();
while (cursor.hasNext()) {
    collection.remove(cursor.next());
}