首页 > 解决方案 > 如何获取名称与正则表达式模式匹配的集合列表并删除它们

问题描述

我有一个包含很多集合的数据库,其中一些是根据日期命名的,yyyy-mm-dd。我想删除与日期模式匹配的每一个。

mongo shell 帮助没有提供太多指导,我发现的只是show collections但没有允许通配符。

db.getCollectionNames()返回一个数组,但我不确定如何在其上过滤和执行命令。哦,为了一个find -name -exec

标签: mongodbmongodb-query

解决方案


使用过滤器中的箭头函数进行匹配,使用 forEach 进行删除。

use mydb;

db.
  getCollectionNames().
    filter( c => c.match("^\\d{4}-\\d{2}-\\d{2}$")).
      forEach(function(c){db[c].drop()})

推荐阅读