位置坐标作为MongoDB中的分片键

时间:2013-05-03 17:18:38

标签: mongodb geospatial sharding

在mongoDB中具有地理空间索引的集合中是否可以将lat和long坐标作为分片键?如果没有,您能否根据位置建议在applcation服务器上计算分片密钥的任何有效方法?

1 个答案:

答案 0 :(得分:10)

无法使用地理空间索引作为分片键索引。

请参阅此处的“重要”说明:http://docs.mongodb.org/manual/core/2d/#d-indexes

  

重要; 分片时,不能使用2d索引作为分片键   采集。但是,您可以创建和维护地理空间索引   通过使用不同的字段作为分片键来分片收集。

您也不能使用数组字段作为分片键。因此,唯一可行的方法是将位置存储两次,一次存储为2d索引的地理位置数组,再次存储为两个常规字段,您可以在该复合键上创建普通复合索引,然后分片。

但是,由于分片键是不可变的,请确保您的位置字段是最终的 - 即它在创建时始终是已知的并且无法更改。