查询 Mongodb 分片上的数据

Querying data on a Mongodb Shard

是否可以直接从特定的Shard查询数据?

我的意思是,当我在 mongos 上 运行 这个命令 db.collection.getShardDistribution() 时,我得到的信息是我的数据在碎片之间分割,我想知道是否可以直接查询数据通过连接到分片。

您的应用程序无法直接与一个分片通信,这也是无用的。 也许下图可以帮助您了解分片在 MongoDB 中的工作原理。

查询路由器(也称为 mongos)用作中间件:它从客户端接收请求并自动将其定向到正确的分片; 当分片准备就绪时,将其答案发送给该查询路由器,该路由器应将其转发给客户端。 使用 mongoDB 分片,mongos 实例使用配置服务器的元数据将请求路由到受影响的分片。 无需直接与分片通信,MongoDB 会为您完成。