2015-06-25 22 views
8

Tôi muốn xóa tất cả tài liệu trong bộ sưu tập bằng java. Đây là mã của tôi:Cách xóa tất cả tài liệu trong bộ sưu tập mongodb trong java

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

Đây có phải là cách đúng để thực hiện việc này không?

Tôi đang sử dụng MongoDB 3.0.2

+0

bạn muốn loại bỏ cụ thể tài liệu phù hợp hoặc thả toàn bộ bộ sưu tập? – Yogesh

+0

Tất cả tài liệu trong bộ sưu tập. – Viratan

Trả lời

8

Để loại bỏ tất cả các tài liệu sử dụng BasicDBObject hoặc DBCursor như sau:

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

cảm ơn bạn, là những gì tôi muốn – Viratan

+0

@Viratan Bạn được chào đón. – chridam

+0

Whats sự khác biệt giữa 2 phương pháp này là gì? –

4

Nếu bạn muốn loại bỏ tất cả các tài liệu trong bộ sưu tập sau đó sử dụng mã dưới đây:

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

Hoặc Nếu bạn muốn thả toàn bộ bộ sưu tập sau đó sử dụng này:

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

Tư vấn chống lại việc sử dụng drop() để cắt bớt một bộ sưu tập nếu bạn tiếp tục sử dụng nó. Bạn có thể gặp lỗi thất thường 'Thao tác bị hủy bỏ vì: tất cả các chỉ mục trên bộ sưu tập đã giảm'. Điều này rõ ràng là vì phá hủy chỉ mục là không đồng bộ. – Wheezil

11

Sử dụng API> = 3.0:

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

Để thả bộ sưu tập (tài liệu chỉ số), bạn vẫn có thể sử dụng:

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

thấy https://docs.mongodb.org/getting-started/java/remove/#remove-all-documents

Các vấn đề liên quan