我有一个 MongoDB集合,其中有具有以下结构的文档
{
...
distanceDeviation: 2.0,
loc: [
[24.77, 67.5],
[24.78, 67.6],
[24.79, 67.7],
[24.80, 67.8],
...
]
...
}
我有这个集合地理索引(使用ensureIndex on loc
)。
我想要一个查询,如果我发送两个点 Mongo从集合中返回我的文档,这两个点都在它们的数组中。loc
我已经能够使用$within
固定$radius
参数来做到这一点,如下所示:
{
"$and": [
{
"loc": {
"$within": {
"$center": [
[
24.812640000000002,
67.01985
],
1.5
]
}
}
},
{
"loc": {
"$within": {
"$center": [
[
24.900070000000003,
67.16828000000001
],
1.5
]
}
}
}
]
}
但是,如果不是1.5
指定为半径,我想指定使用属性distanceDeviation,它是本文档的一部分。
无论如何,最好没有$where
. 如果不是那么,我该如何使用$where
.