8

是否可以?我有自动生成的 mongoDB 集合,在某个时刻我需要删除这些集合。我知道他们的收藏名称模式,而且他们太多了,所以手工丢弃它们不是一种选择。我使用正则表达式查看的所有示例都涉及查询,但不涉及数据库命令。我知道我可以遍历所有集合并按它们的名称过滤我可以让它工作但我正在寻找一个更方便和单一的命令(我想直接在 shell 中使用它),如果可能的话:)

有什么建议么?

谢谢!

4

2 回答 2

16

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

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

您可以使用任何正则表达式来匹配您的集合名称。

于 2013-05-13T11:02:15.303 回答
5
db.getCollectionNames().forEach(function(c) {
    if(c.match("^system.indexes")) { 
        db.getCollection(c).drop();
    }
  });
于 2013-12-04T06:07:32.850 回答