如何从不同的分片和相同的集合中获取结果

how to get results from different shards and same collection

我创建了一个测试 MongoDB Sharding with 1 Config Server, 1 Router and 2 Shards.

我创建了一个配置服务器 mongod --configsvr --dbpath /data/configdb --port 27019

我 运行 mongosmongos --configdb <CONFIG SERVER IP>:27019。我连接了分片、数据库和集合。当我查询分片集合时,游标不会从两个分片中获取结果,它只会从 1 个分片中获取结果。根据 MongoDB 分片文档,我可以将一个集合分发到不同的分片,但结果不满足此信息。

我做错了什么?使用相同查询从不同分片获取结果的正确方法是什么?

正确的方法是确保您不必经常跨分片。您选择了一个分片键,这样您的查询就不会最终跨越分片。例如用户数据库可以将用户 id/name 作为分片键。大多数查询都在寻找单个用户,因此会从单个分片返回。

对于仅来自 1 个分片的结果无法满足的查询,Mongo 会自动从所有分片请求数据。