MongoDB を使用してタクシー予約サービスを設計しています。私のスキーマは次のようになります-
{
"_id": {
"$oid": "621ca96e2c7e7efcfba6ce34"
},
"registration_id": "Id1",
"location": [{
"$numberDouble": "13.197827893722762"
}, {
"$numberDouble": "77.70575957707639"
}]
}
ここで、場所は Point GeoJson データ型です。
顧客の場所に基づいて、要求があったときに最寄りのタクシーを提供する必要があります。同じために $near クエリを使用しています。
query = {"location": { "$near": { "$geometry": { "type": "Point", "coordinates": [event['longitude'], event['latitude']] }}}}
ただし、4 つの座標で定義された特定のエリアに属するタクシーのみを提供する必要があります。
領域によって定義されたポイントを提供する $geowithin を使用すると、並べ替えられた結果が得られません。上記のように $near を使用すると、領域を制限できません。
これを達成するためのエレガントな方法は何ですか?