csv ファイルからインポートされた非常に大きなデータベース (〜 600 万行) があります。私は MongoDB と GeoSpatial インデックス作成に関するドキュメントを見ていました。配列に埋め込まれた緯度と経度のフィールドが必要です。残念ながら、インポートした構造にはフィールドが分かれています。
「緯度」:54.770233、「経度」:-6.537741、
54 の緯度と -6 の経度を使用して、半径 25 マイル以内にある 20 個の最も近いドキュメントを計算するために DB にクエリを実行する方法はありますか?
MySQL でクエリを作成しました:
SELECT * , ( 3959 * ACOS( COS( RADIANS( 54 ) ) * COS( RADIANS( latitude
) ) * COS( RADIANS( longitude
) - RADIANS( -6 ) ) + SIN( RADIANS( 54 ) ) * SIN( RADIANS( latitude
) ) ) ) AS 距離 FROM テーブル名 HAVING 距離 <25 ORDER BY 距離 LIMIT 0 , 20
ただし、埋め込みフィールドなしで Mongo でこれを行う方法がわかりません。
どんな助けでも大歓迎です。