我想在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
我想在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
使用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
使用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());
}
db.getCollection("mainCollection").remove(new BasicDBObject());
或者,如果您想要删除整个集合,请使用以下方法:
db.getCollection("mainCollection").drop();
对于较新的mongodb驱动程序,您可以使用FindIterable来删除集合中的所有文档。
FindIterable<Document> findIterable = collection.find();
for (Document document : findIterable) {
collection.deleteMany(document);
}