4

mongoDB の地理空間インデックスを持つコレクションで、緯度と経度の座標をシャード キーとして持つことは可能ですか? そうでない場合は、場所に基づいて、アプリケーションサーバーでシャードキーを計算する効率的な方法を提案できますか?

4

1 に答える 1

10

地理空間インデックスをシャード キー インデックスとして使用することはできません。

ここの「重要な」メモを参照してください: http://docs.mongodb.org/manual/core/2d/#d-indexes

重要; コレクションをシャーディングする場合、2d インデックスをシャード キーとして使用することはできません。ただし、別のフィールドをシャード キーとして使用することで、シャード コレクションの地理空間インデックスを作成および維持できます。

配列フィールドをシャード キーとして使用することもできません。したがって、これを行う唯一の方法は、場所を 2 回保存する場合です。1 回目は 2 次元のインデックス付き地理位置情報配列として、2 回目は通常の複合インデックスを作成してからその複合キーを分割できる 2 つの通常のフィールドとして保存します。

ただし、シャード キーは不変であるため、場所フィールドが最終的なものであることを確認してください。つまり、作成時に常に認識され、変更できないようにしてください。

于 2013-05-05T19:20:10.133 に答える