Je souhaite supprimer tous les documents d'une collection en Java. Voici mon code:
MongoClient client = new MongoClient("10.0.2.113" , 27017);
MongoDatabase db = client.getDatabase("maindb");
db.getCollection("mainCollection").deleteMany(new Document());
Est-ce la bonne façon de procéder?
J'utilise MongoDB 3.0.2
Pour supprimer tous les documents, utilisez BasicDBObject ou DBCursor comme suit:
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());
}
En utilisant l'API> = 3.0:
MongoClient mongoClient = new MongoClient("127.0.0.1" , 27017);
MongoDatabase db = mongoClient.getDatabase("maindb");
db.getCollection("mainCollection").deleteMany(new Document());
Pour supprimer la collection (documents et index), vous pouvez toujours utiliser:
db.getCollection("mainCollection").drop();
voir https://docs.mongodb.org/getting-started/Java/remove/#remove-all-documents
Si vous souhaitez supprimer tous les documents de la collection, utilisez le code ci-dessous:
db.getCollection("mainCollection").remove(new BasicDBObject());
Ou si vous souhaitez supprimer toute la collection, utilisez ceci:
db.getCollection("mainCollection").drop();
Pour les pilotes mongodb plus récents, vous pouvez utiliser FindIterable pour supprimer tous les documents de la collection.
FindIterable<Document> findIterable = collection.find();
for (Document document : findIterable) {
collection.deleteMany(document);
}