我遇到了一个查询匹配BoundingBox内的项目的问题。
我在mongo documentation中读了很多关于$box
和$geoWithin
但没有成功但却无法弄清楚为什么查询框内的项目没有产生。
这里是一个来自Item内部定义的Schema的示例,以及用于获取它的Query
schemadefinition看起来像这样,它的验证工作正常。
/**
* Media location values (Point, LineString, Polygon)
* @property location
* @type {Object}
*/
location:{
"type":Object,
"index":"2dsphere"
},
内部的一个项目看起来像这样(预期作为查询的结果):
{
"_account": "52796da308d618090b000001",
"_id": "5280d9c6592dce2d36000001",
"location": {
"coordinates": [
50.109230555555555,
8.757613888888889
],
"type": "Point"
},
"name": "Büro",
"preview": "/img/thumbs/13869-2gqv8n.JPG",
"type": "image/jpeg",
"added": "2013-11-11T13:21:10.951Z",
"latlng": [ ],
"shares": [ ],
"shared": false,
"tags": [ ]
}
获取项目的查询类似于
{
// tried also "location.coordinates" without luck
"location": {
" $geoWithin": {
"$box": [
[
49.99825021043669,
8.543586730957031
],
[
50.139285461134996,
8.996772766113281
]
]
}
}
}
这里的错误总是得到空数组?
答案 0 :(得分:3)
我可以看到一件事在这里是错的。不应该" $geoWithin"
是"$geoWithin"
??