Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用正则表达式删除MongoDB集合_Mongodb - Fatal编程技术网

使用正则表达式删除MongoDB集合

使用正则表达式删除MongoDB集合,mongodb,Mongodb,可能吗?我已经自动生成了mongoDB集合,在某个时刻我需要删除这些集合。我知道它们的集合名称模式,而且它们太多了,所以手动删除它们不是一个选项。我看到的所有使用regex的示例都涉及查询,但不涉及数据库命令。我知道我可以迭代所有集合并按它们的名称进行过滤,我可以让它工作,但我正在寻找一个更方便、更简单的命令(我想直接在shell中使用它),如果可能的话:) 有什么建议吗 谢谢大家! 您可以使用MongoDB控制台执行此操作: regExp = /test/; db.getCollectionN

可能吗?我已经自动生成了mongoDB集合,在某个时刻我需要删除这些集合。我知道它们的集合名称模式,而且它们太多了,所以手动删除它们不是一个选项。我看到的所有使用regex的示例都涉及查询,但不涉及数据库命令。我知道我可以迭代所有集合并按它们的名称进行过滤,我可以让它工作,但我正在寻找一个更方便、更简单的命令(我想直接在shell中使用它),如果可能的话:)

有什么建议吗


谢谢大家!

您可以使用MongoDB控制台执行此操作:

regExp = /test/;
db.getCollectionNames().filter(function(name){
  return name.match(regExp)
}).forEach(function(name){
  db.getCollection(name).drop()
});

您可以使用任何regexp来匹配您的集合名称。

检查这些:当您自动生成和自动删除大量集合时,您可能做错了什么。@Philipp这是一个非常具体的用例:)@3boll谢谢您的链接,在我的快速线程搜索中错过了这个链接!你是对的,这似乎是唯一有效的方法(尽管我想避免)。如果没有其他可能的解决办法,我会接受它作为一个答案。谢谢你的时间!
db.getCollectionNames().forEach(function(c) {
    if(c.match("^system.indexes")) { 
        db.getCollection(c).drop();
    }
  });