Как удалить все документы в коллекции mongodb в java

Я хочу удалить все документы из коллекции в 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

Чтобы удалить все документы, используйте 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());
}

Ответ 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

Ответ 3

Если вы хотите удалить все документы в коллекции, а затем использовать ниже код:

 db.getCollection("mainCollection").remove(new BasicDBObject());

Или Если вы хотите удалить всю коллекцию, тогда используйте это:

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

Ответ 4

Для более новых драйверов mongodb вы можете использовать FindIterable, чтобы удалить все документы в коллекции.

FindIterable<Document> findIterable = collection.find();
       for (Document document : findIterable) {
         collection.deleteMany(document);
       }