Tôi đã cấu trúc lại cơ sở dữ liệu của mình một chút và không còn cần bộ sưu tập nhất định nữa. Tuy nhiên, có quá nhiều người trong số họ để loại bỏ bằng tay (hàng ngàn, thực sự). Mỗi bộ sưu tập được đề cập bắt đầu bằng "cache_" và chứa một vài chỉ mục mà tôi muốn đảm bảo hoàn toàn được dọn sạch.MongoDB: Xóa tất cả các bộ sưu tập có tên khớp với một chuỗi
Tôi đang cố gắng hiểu cách sử dụng vỏ mongo để lặp qua tất cả các tên bộ sưu tập và xóa những bộ sưu tập bắt đầu bằng "cache_". Theo số Queries & Cursors documentation, tôi hiểu cách lặp qua các tài liệu trong một bộ sưu tập, nhưng không phải cách sử dụng trình bao MongoDB để lặp qua các bộ sưu tập trong cơ sở dữ liệu.
Trong pseudo-code, đây là những gì tôi cần:
var all_collections = show collections
for(var collection in all_collections)
if(collection.name.indexOf('cache_')==0)
collection.drop()
FWIW, tôi đã thực hiện tìm kiếm "loop MongoDB qua tên bộ sưu tập" vv và đã không tìm thấy bất cứ điều gì, nhưng có lẽ tôi sux tại teh googlez = P
Trên ghi chú liên quan ... sau khi thực hiện việc tái cơ cấu này, tôi có nên thực hiện db.repairDatabase()
hoặc bất kỳ thứ gì sắp xếp để đảm bảo các chỉ mục bị xóa vv đều đẹp và sạch?
Cảm ơn.
FTW, cảm ơn. Tôi đoán tôi không biết rằng "show collections" => "db.getCollectionNames();" –
** db [collectionName] ** là khóa ở đây. _Javascript để thực thi trên RoboMongo_ 'var bộ sưu tập = [ 'collection1', 'collection2'] collections.forEach (function (coll_name) { in (coll_name) db [coll_name] .drop() }) ' – Abhijeet