2015-06-25 2 views
8

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

+0

вы хотите удалить конкретные сопоставляемые документы или удалить всю коллекцию? – Yogesh

+0

Все документы в коллекции. – Viratan

ответ

8

Чтобы удалить все документы используют BasicDBObject или DBCursor следующим образом:

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

спасибо, был то, что я хотел – Viratan

+0

@Viratan Добро пожаловать. – chridam

+0

Какая разница между этими двумя подходами? –

4

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

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

Или Если вы хотите отказаться от всей коллекции затем использовали это:

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

Посоветуйте использовать drop() для обрезки коллекции, если вы собираетесь продолжать ее использовать. Вы можете получить ошибочную ошибку «Операция прерывается, потому что: все индексы в коллекции сброшены». По-видимому, это потому, что index destroy является асинхронным. – Wheezil

11

Использование 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

Смежные вопросы