我的数据库中有很多 mongodb 集合需要删除。它们都有相似的名称,如果只使用通配符,则很容易删除它们。但看起来他们做不到。
有没有办法一次选择一堆集合来删除它们?
我的数据库中有很多 mongodb 集合需要删除。它们都有相似的名称,如果只使用通配符,则很容易删除它们。但看起来他们做不到。
有没有办法一次选择一堆集合来删除它们?
对于正则表达式,您可以使用 string.match
db.getCollectionNames().forEach(function(c) {
if(!c.match("^system.indexes")) {
db.getCollection(c).drop();
}
});
# Delete Particular Collections From MongoDB
> use database_name
> delete_collection_list = ["collection1", "collection2", "collection3", "collection4", "collection5", "collection6"]
> delete_collection_list.forEach( function (collection) {
if (db.getCollectionNames().indexOf(collection)>=0) {
db.getCollection(collection).drop();
print("Deleted Collection: "+ collection);
}
})
您可以使用以下命令删除所有集合。
> use database_name;
> db.getCollectionNames().forEach(function(c) {
if(c != 'system.indexes') {
db.getCollection(c).drop();
}
});
不,没有办法通过通配符/正则表达式删除多个集合。您必须将它们一一丢弃。我最近执行了一项类似的任务,我的脚本每秒能够丢弃约 20-30 个集合。你有多少?
You can drop every collection in the database with db.dropDatabase()
in the mongo shell. Just make sure you really want to nuke everything before you do.