MongoDB中的geoNear返回空结果

时间:2015-02-20 10:04:36

标签: mongodb spatial-index 2dsphere

在MongoDB中,我创建了一个名为“GIS”的数据库和一个名为“UTILITIES”的集合。我已经插入了一些GeoJSON元素,如下所示

{ 
"_id" : ObjectId("54e6de457e550c23bc1521a0"), 
"id" : "1", 
"geometry" : {
    "coordinates" : [
        86.74957, 
        21.93157
    ], 
    "type" : "Point", 
    "bbox" : [
        86.74957, 
        21.93157, 
        86.74957, 
        21.93157
    ]
}, 
"properties" : {
    "PLACE" : "Abhoy Medical Store", 
    "LATITUDE" : "21.93157", 
    "LONGITUDE" : "86.74957", 
    "IMG" : "43400012"
}, 
"type" : "Feature", 
"bbox" : [
    86.74957, 
    21.93157, 
    86.74957, 
    21.93157
]
}
{ 
"_id" : ObjectId("54e6de457e550c23bc1521a1"), 
"id" : "2", 
"geometry" : {
    "coordinates" : [
        86.73604, 
        21.92578
    ], 
    "type" : "Point", 
    "bbox" : [
        86.73604, 
        21.92578, 
        86.73604, 
        21.92578
    ]
}, 
"properties" : {
    "PLACE" : "Advanced Homeo Sadan", 
    "LATITUDE" : "21.92578", 
    "LONGITUDE" : "86.73604", 
    "IMG" : "43400123"
}, 
"type" : "Feature", 
"bbox" : [
    86.73604, 
    21.92578, 
    86.73604, 
    21.92578
]
}

然后我创建了一个2dsphere索引,如下所示

db.UTILITIES.ensureIndex ({geometry : "2dsphere"})

然后我按如下所示运行geoNear命令

db.UTILITIES.runCommand(
{
 geoNear: "UTILITIES",
 near: { type: "Point", coordinates: [ 86.74957, 21.93157 ] },
 spherical: true,
 query: { category: "public" },
 minDistance: 0,
 maxDistance: 7000
}
)

返回结果如下

{
"results" : [ ],
"stats" : {
    "nscanned" : 244,
    "objectsLoaded" : 267,
    "avgDistance" : NaN,
    "maxDistance" : 0,
    "time" : 2
},
"ok" : 1
}

返回的结果数组为空。 请提出解决方案。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

尝试更改o评论此部分:

query: { category: "public" }

因为元素中没有“类别”字段