2013-05-03 16 views
4

在具有mongoDB中的地理空間索引的集合中,是否可以將緯度和長度座標作爲分片鍵?如果沒有,您可以根據位置提出任何有效的方法來計算應用服務器上的分片鍵嗎?在MongoDB中作爲分片鍵的位置座標

回答

10

無法將地理空間索引用作分片索引。

參見 「重要」 注意這裏:http://docs.mongodb.org/manual/core/2d/#d-indexes

重要;分割 集合時,不能將2d索引用作分片鍵。但是,您可以使用不同的字段作爲分片鍵,在分片集合上創建並維護地理空間索引 。

您不能將數組字段用作分片鍵。因此,唯一的辦法就是如果您將位置存儲了兩次,一次是2d索引的地理位置數組,然後再次作爲兩個常規字段,您可以在該複合鍵上創建正常複合索引,然後分片。

但是,由於分片鍵是不可變的,請確保您的位置字段是最終的 - 即它在創建時總是已知並且不能更改。

+0

謝謝你的回答!你有鏈接到文檔說明分片鍵是不可變的嗎?引用中的「並保持」是指什麼? – nha 2014-12-18 00:49:01

+0

而且,在創建的索引上,我們應該使用基於範圍還是基於散列的分片? (或者是其他東西?) – nha 2014-12-18 00:59:58