Search code examples
mongodbspatial-index2dsphere

geoNear in MongoDB returns empty result


In MongoDB I have created a database named 'GIS' and a collection named 'UTILITIES'. I have inserted some GeoJSON elements as below

{ 
"_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
]
}

Then I have created a 2dsphere index as below

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

Then I run the geoNear command as below

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

This returns the result as below

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

The returned results array is empty. Kindly suggest a solution. Thanks in advance.


Solution

  • Try to change o comment this part:

    query: { category: "public" }

    Because in the elements there is no "category" field