2015-06-25 8 views
8

Ich möchte alle Dokumente in einer Sammlung in Java löschen. Hier ist mein Code:Wie alle Dokumente in mongodb Sammlung in Java löschen

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

Ist dies der richtige Weg, dies zu tun?

Ich bin mit MongoDB 3.0.2

+0

Sie bestimmte entfernen Dokumente abgeglichen oder die gesamte Sammlung gelöscht? – Yogesh

+0

Alle Dokumente in der Sammlung. – Viratan

Antwort

8

so entfernen Sie alle Dokumente, die die BasicDBObject oder Dbcursor wie folgt verwenden:

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

danke, was ich wollte – Viratan

+0

@Viratan Sie sind willkommen. – chridam

+0

Was ist der Unterschied zwischen diesen beiden Ansätzen? –

4

Wenn Sie alle Dokumente in der Sammlung entfernen möchten, dann unten Code verwendet:

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

oder wenn Sie ganze Sammlung fallen wollen, dann benutzten:

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

Beraten Sie sich davor, mit drop() eine Sammlung abzuschneiden, wenn Sie sie weiterverwenden. Sie erhalten möglicherweise einen fehlerhaften Fehler 'Operation abgebrochen, weil: alle Indizes für die Sammlung gelöscht wurden'. Dies liegt offenbar daran, dass Index Destroy asynchron ist. – Wheezil

Verwandte Themen