У меня есть осколок кластера с именем test2.MongoDB: запрос на осколки кластера
db.collection.getShardDistribution() дает мне это:
Почему мой .count()
запрос возвращает только общие документы в shard0000 и мою итерации только итерацию документов в 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. Спасибо!
Можете ли вы разместить строку соединения? Указывает ли это на экземпляр монго? И ваша коллекция и ваш кластер имеют то же имя? –
Можете ли вы уточнить? – kongshem
Вы запрашиваете разбитый кластер через экземпляр 'mongos', поэтому вам нужно подключиться к нему. Скорее всего, вы напрямую подключаетесь к shard0000. Просто убедитесь, что вы подключаетесь к экземпляру mongos. Просто добавьте строку подключения и IP-адреса в свой вопрос, [редактируя это] (http://stackoverflow.com/posts/34018856/edit) –