2012-10-03 42 views
0

我有一個龐大的數據庫,它有大約300個集合,我必須爲每個集合啓用分片,是否有一個命令來啓用從mongos的所有集合中的分片,在一個鏡頭中啓用在Mongodb數據庫中存在的所有集合的分片

可以說,我的數據庫名字爲abc

我啓用了分片爲DB這樣

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

後,我需要使用

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

的foreach收集,

所以請建議,並提前做

感謝您迴應這篇文章

回答

3

您可以通過編程讓所有集合名稱的簡單方法。

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

遺憾的是它不工作是你做這個測試它 –

+0

應該如果你原來'db.runCommand({shardcollection工作...'的工作。我'print'進行了測試。 –

+0

這是工作,但對於我它打印db.getlasterror它顯示訪問被拒絕,並使用管理員,但我的數據庫是不同的,有沒有什麼辦法預先初始化數據庫名稱那裏,實際上它接受,dbname.collectionname –

相關問題