一次性启用Mongodb数据库中存在的所有集合的分片

时间:2012-10-03 10:57:18

标签: mongodb sharding

我有一个庞大的数据库,有大约300个集合,我必须为每个集合启用分片,是否有命令在mongos的所有集合上启用分片,

假设我的数据库名称是abc

我为此启用了db的分片

db.runCommand({"enablesharding" : "abc"})

稍后我需要使用

db.runCommand( { shardcollection : "collection name", key : { _id : 1 } } )

foreach集合,

所以请建议并简单地做到这一点

提前感谢您回复此帖

1 个答案:

答案 0 :(得分:3)

您可以通过编程方式获取所有集合名称。

db.getCollectionNames().forEach(function(coll_name) {
  db.runCommand( { shardcollection : coll_name, key : { _id : 1 } } )
})