私は、MongoDBと地理空間検索について理解しようとしています。基本的に私が欲しいのは、ユーザーがユーザーの現在の場所から設定された距離内で撮影されたドキュメント(画像)をクエリできるようにすることです。ユーザーが立っている場所から1 km以内で撮影されたすべての画像を検索しているので、次の例を使用しようとしますが、maxdistance値として何を設定するのかわかりません。
db.places.find({ loc : { $near : [50,50] , $maxDistance : 5 }})
だから私の質問は、半径1 km以内のドキュメントを検索する場合、maxdistanceとして何を設定するのですか?
私はここで完全に行き詰まっています。
Km境界でmongodb $near
クエリを使用するには、半径の値をkmに変換する必要があります。デフォルトでは、mongodb $ nearは$maxDistance
をradius
として受け入れます。
Kmを使用する場合は111.12
(1度は約111.12キロメートル)で距離を変換するか、または度を使用する場合は距離をそのままにします
あなたの質問に
半径1 km以内のドキュメントを検索する場合、maxdistanceとして何を設定しますか?
あなたはこれを使うことができます
db.places.find( { loc : { $near : [50,50] , $maxDistance : 1/111.12 } } )
私はここで詳細に mongo地理空間機能の使用方法に回答しました 。チェックアウトできます
MongoDBのバージョン2.4以降、次のように、半径をメートル単位で$ maxDistanceの値として直接指定できます。
db.<collection>.find({loc: {$near :
{$geometry :
{
type: 'Point',
coordinates: [<longitude> , <latitude>]
}
},
$maxDistance: 10*100
}
});