MongoDB:查询分片群集

时间:2015-12-01 11:07:20

标签: mongodb sharding querying

我有一个名为test2的分片群集。

db.collection.getShardDistribution()给了我这个: enter image description here

为什么我的.count()查询只返回shard0000中的总文档,而我的iterable只遍历shard0000中的文档?我该怎么做才能使我的查询返回整个集合?

    System.out.println("Total docs: "+db.getCollection(collectionName).count());
    FindIterable<Document> iterable = db.getCollection(collectionName).find();

我使用不同参数执行的任何查询仅迭代shard0000。

修改连接字符串:

MongoClient mongoClient = new MongoClient("129.241.xxx.xx",27017);

这是错误。应该是端口27023.谢谢!

1 个答案:

答案 0 :(得分:2)

问题是我在分片数据库后连接到错误的端口。我不得不修改我的连接字符串以使用我的mongo实例运行的正确端口。

这是我的连接字符串。

MongoClient mongoClient = new MongoClient("129.241.xxx.xx",27017);

将端口更改为

MongoClient mongoClient = new MongoClient("129.241.xxx.xx",27023);

......它奏效了。感谢@Markus W Mahlberg指出我正确的方向。