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