MongoDB - 限制地理空间$附近的几何数据

时间:2017-02-04 04:36:02

标签: mongodb mongodb-query geospatial

我在集合中有以下文档

{
"_id" : ObjectId("589550ae930b4acade1e2157"),
"itemId" : "2",
"loc" : {
    "type" : "GeometryCollection",
    "geometries" : [
        {
            "type" : "Point",
            "coordinates" : [
                -121.9771985,
                37.5637936
            ],
            "address" : "Athy St"
        },
        {
            "type" : "Point",
            "coordinates" : [
                -121.9430202,
                37.3972994
            ],
            "address" : "River Side Ct"
        }
    ]
}

我使用以下查询从最近的位置查找项目:

db.store.find(
   {
     loc:
       { $near :
          {
            $geometry: { type: "Point",  coordinates: [-121.9777269,37.5607686] },
            $maxDistance: 3.0 * 1609.34
          }
       }
   }
)

我试图限制获取并仅显示最近的匹配地址。假设查询的位置仅匹配River Side ct,我不想返回Athy Street。这是几何集合数组。我试图使用预测,但没有奏效。

你能告诉我如何限制吗?任何帮助都非常感谢。

提前致谢。

麦迪

1 个答案:

答案 0 :(得分:1)

MongoDB $near操作按距离排序(距离最近,  如getopt中所述,所以你所要做的就是限制结果。

db.store.find(
   {
     loc:
       { $near :
          {
            $geometry: { type: "Point",  coordinates: [-121.9777269,37.5607686] },
            $maxDistance: 3.0 * 1609.34
          }
       }
   }
).limit(1)