获取MongoDB中的边界框内的所有项目

时间:2013-11-12 16:02:38

标签: javascript mongodb mongoose geojson

我遇到了一个查询匹配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
                ]
            ]
        }
    }
}

这里的错误总是得到空数组?

1 个答案:

答案 0 :(得分:3)

我可以看到一件事在这里是错的。不应该" $geoWithin""$geoWithin" ??