Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.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中删除5个集合命令中的所有内容 在Mongo数据库中手动删除每个集合需要花费大量时间。不,实际上,您只需要手动删除每个集合中的所有项目: db.foo1.remove({}) db.foo2.remove({}) 此外,如果您关心性能,您完全可以放弃收集,它应该更快: db.foo1.drop() db.foo2.drop() 另一种方法是,如果需要经常删除这五个集合,请将它们分组到一个数据库下,然后删除整个数据库: use dbWithF

有没有办法从多个集合中删除对象?比如在MongoDB中删除5个集合命令中的所有内容


在Mongo数据库中手动删除每个集合需要花费大量时间。

不,实际上,您只需要手动删除每个集合中的所有项目:

db.foo1.remove({})
db.foo2.remove({})
此外,如果您关心性能,您完全可以放弃收集,它应该更快:

db.foo1.drop()
db.foo2.drop()
另一种方法是,如果需要经常删除这五个集合,请将它们分组到一个数据库下,然后删除整个数据库:

use dbWithFiveCollections
db.dropDatabase()

正如Andrew提到的,没有内置的方法来实现这一点,但是您可以使用Javascript来获得您想要的。例如,如果我想快速删除数据库列表(而且很脏,这只是一个概念验证代码示例!):

当然没有错误检查,但是这种服务器端脚本可以用于跨收集和跨数据库功能。如果您希望在所有数据库上运行某些内容,则可以如下构造列表:

var allDBs = db.getMongo().getDBNames()
for(var name in allDBs){
      db = db.getMongo().getDB( name );
      db.<command to execute on each DB>;
 }
var allDBs=db.getMongo().getDBNames()
for(所有数据库中的变量名称){
db=db.getMongo().getDB(名称);
分贝。;
}
当然,在运行这样的东西时,您需要非常非常小心,以避免破坏数据库,所以要进行广泛的测试并明智地使用:)

有关服务器端JS的更多信息,请查看此处的MongoDB文档:

var allDBs = db.getMongo().getDBNames()
for(var name in allDBs){
      db = db.getMongo().getDB( name );
      db.<command to execute on each DB>;
 }