如果我在分片的关键字"my_key“中有MongoDB sharded集群。我必须在收藏包文档(大约10-500个项目)中找到不同的my_key。例如:
db.test.find({my_key:{$in:1,3,5,67,45,56...}})
Mongos知道'my_key‘存储在哪里。mongos可以将我的查询拆分成小查询,精确到文档存储的分片吗?或者mongos会将这个查询发送到所有的分片?
关于$or也有同样的问题
db.test.find({$or:{my_key: 1},{my_key: 3},{my_key: 5}...})
发布于 2015-08-18 15:32:04
我已经运行了测试。
如果$in只包含一个分片的值,mongos将发送SINGLE_SHARD查询。
如果$in包含来自多个分片的值,那么mongos将只发送包含所需数据的分片的SHARD_MERGE查询(不是所有集群)。
https://stackoverflow.com/questions/32026504
复制相似问题