如何在Mongodb中检查集合是否已分片

use*_*947 3 mongodb

我写

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

db.runCommand({shardcollection : "database.coll_1",key : {_id :"hashed"}})
Run Code Online (Sandbox Code Playgroud)

以及如何检查收藏品是否被破坏?也许存在一些我不知道的功能。请帮我!

MrR*_*bot 5

我使用以下内容:

use dbname db.colname.getShardDistribution()

如果没有,Collection dbname.colname is not sharded则输出分片分布。检查以获取更多详细信息。

我也使用@Scott的注释(use databaseName; db.collectionName.stats().sharded),但我更喜欢getShardDistribution,它更干净。


Bor*_*ris 2

连接到 mongos 并运行以下命令:

use config;
db.collections.find( {_id: "db.colname" , dropped : false } )
Run Code Online (Sandbox Code Playgroud)

如果集合是共享的,它将与分片键一起出现在此处

  • 我遇到过上述命令返回有效对象的情况,这意味着在集合上启用了分片,但在集合上未启用分片,如 .stats() 所示。相反,您可以检查:`use databaseName; db.collectionName.stats().sharded` (3认同)