如何检查mongodb每个分片中的数据?

时间:2012-09-10 13:32:24

标签: mongodb

我创建了两个分片,密钥是年龄如下:

db.runCommand({addshard: "localhost:10000", allowLocal: true, maxsize: 0.1, minkey: 1, maxkey: 1})
db.runCommand({addshard: "localhost:10001", allowLocal: true, maxsize: 0.1, minkey: 2, maxkey: 2})

db.runCommand({enablesharding: "foo"})
db.runCommand({shardcollection: "foo.items", key: {"age": 1, "_id":1}, unique: true})

如何检查碎片中的数据? 或者我如何从指定的分片中获取数据? 有可能吗?

1 个答案:

答案 0 :(得分:1)

当您想知道哪个分片包含多少数据时,您可以使用

db.printShardingStatus();

命令。

我自己没有尝试过,但我认为当你使用mongo程序直接连接到分片的mongod进程而不是mongos路由器进程时,应该可以查询特定的分片。在任何情况下,您都应该只进行故障排除。您的应用程序应该信任mongos将查询分发到正确的分片,而不是直接访问分片。