我创建了两个分片,密钥是年龄如下:
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})
如何检查碎片中的数据? 或者我如何从指定的分片中获取数据? 有可能吗?
答案 0 :(得分:1)
当您想知道哪个分片包含多少数据时,您可以使用
db.printShardingStatus();
命令。
我自己没有尝试过,但我认为当你使用mongo程序直接连接到分片的mongod进程而不是mongos路由器进程时,应该可以查询特定的分片。在任何情况下,您都应该只进行故障排除。您的应用程序应该信任mongos将查询分发到正确的分片,而不是直接访问分片。