Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查mongodb的每个碎片中的数据?_Mongodb - Fatal编程技术网

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

如何检查mongodb的每个碎片中的数据?,mongodb,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({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})
如何检查whcih碎片中的数据? 或者如何从指定的碎片中获取数据?
有可能吗?

当您想知道哪个碎片保存了多少数据时,可以使用

db.printShardingStatus();
指挥部


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

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

db.printShardingStatus();
指挥部

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