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

Vir*_*tan 16 java mongodb mongodb-java

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

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

这是正确的方法吗?

我正在使用MongoDB 3.0.2

haw*_*ick 17

使用API​​> = 3.0:

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

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

db.getCollection("mainCollection").drop();
Run Code Online (Sandbox Code Playgroud)

请参阅https://docs.mongodb.org/getting-started/java/remove/#remove-all-documents


chr*_*dam 15

要删除所有文档,请使用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());
}
Run Code Online (Sandbox Code Playgroud)


Yog*_*esh 6

如果要删除集合中的所有文档,请使用下面的代码:

 db.getCollection("mainCollection").remove(new BasicDBObject());
Run Code Online (Sandbox Code Playgroud)

或者如果你想删除整个集合,那么使用它:

db.getCollection("mainCollection").drop();
Run Code Online (Sandbox Code Playgroud)

  • 如果您打算继续使用集合,建议不要使用 drop() 来截断集合。您可能会收到不稳定的错误“操作中止,因为:集合上的所有索引都已删除”。这显然是因为索引销毁是异步的。 (2认同)