2015-06-25 16 views
8

Chcę usunąć wszystkie dokumenty z kolekcji w java. Oto mój kod:Jak usunąć wszystkie dokumenty w kolekcji mongodb w java

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

Czy to właściwy sposób?

Używam MongoDB 3.0.2

+0

chcesz usunąć specyficzny dopasowane dokumenty lub upuścić całą kolekcję? – Yogesh

+0

Wszystkie dokumenty w kolekcji. – Viratan

Odpowiedz

8

Aby usunąć wszystkie dokumenty używać BasicDBObject lub DBCursor następująco:

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

BasicDBObject document = new BasicDBObject(); 

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

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

dziękuję, było to, co chciałem – Viratan

+0

@Viratan Nie ma za co. – chridam

+0

Jaka jest różnica między tymi dwoma podejściami? –

4

Jeśli chcesz usunąć wszystkie dokumenty w kolekcji następnie używane poniżej kod:

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

lub jeśli chcesz usunąć całą kolekcję następnie wykorzystane w ten sposób:

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

Odradzam używanie metody drop() do obcinania kolekcji, jeśli zamierzasz jej nadal używać. Może pojawić się błędny błąd "Operacja została przerwana, ponieważ: wszystkie indeksy w kolekcji spadły". Jest tak, ponieważ indeks niszczenia jest asynchroniczny. – Wheezil

Powiązane problemy