私はMongoDBコレクションを持っています。ここには次の構造のドキュメントがあります
{
...
distanceDeviation: 2.0,
loc: [
[24.77, 67.5],
[24.78, 67.6],
[24.79, 67.7],
[24.80, 67.8],
...
]
...
}
このコレクションにジオインデックスを付けています(ensureIndexを使用loc
)。
2つのポイントを送信すると、Mongoがコレクションからドキュメントを返すクエリが必要です。このドキュメントには両方のポイントが配列に含まれています。loc
私は次のよう$within
に固定$radius
パラメータを使用してそれを行うことができました:
{
"$and": [
{
"loc": {
"$within": {
"$center": [
[
24.812640000000002,
67.01985
],
1.5
]
}
}
},
{
"loc": {
"$within": {
"$center": [
[
24.900070000000003,
67.16828000000001
],
1.5
]
}
}
}
]
}
ただし、radiusとして指定する代わりに、このドキュメントの一部である属性distanceDeviationが使用される1.5
ように指定したい場合。
とにかくこれを達成するためにできればなしでありますか$where
。そうでない場合は、どうすればそれを行うことができますか$where
。