2015-03-14 3 views
0

Помогите мне выяснить, почему этот запрос не возвращает результаты?

Я импортировал файл формы с помощью ogr2ogr, чтобы преобразовать его в GeoJSON, а затем импортировать его в Монго, используя следующую команду: «mongoimport --db ХТ - коллекция объектов < f.json» Затем я создал индекс, как это : "db.facilities.ensureIndex ({" геометрия ":" 2dsphere "})"

Вот пример документа, наряду с запросом, который ничего не возвращает, а индекс:

db.epa_facilities.aggregate([ 
    { 
    $geoNear: { 
    near: { type: "Point", coordinates: [ -74.501340, 39.944520 ] }, 
    distanceField: "dist.calculated", 
    maxDistance: 3, 
    query: { type: "public" }, 
    includeLocs: "dist.location", 
    spherical: true, 
    distanceMultiplier: 3959 
} 
} 
]) 

Вот документ (свойства, удаленные для краткости):

{ 
"_id" : ObjectId("54ff20a90e46de508d1dae93"), 
"type" : "Feature", 
"properties" : { 
… }, 
"geometry" : { 
    "type" : "Point", 
    "coordinates" : [ 
     -74.50134, 
     39.9445200009289 
    ] 
} 

}

А вот индекс. Я пытался как с «геометрией» и с «geometry.coordinates» с тем же результатом:

{ 
"geometry.coordinates" : "2dsphere" 

}

+1

У вас есть необязательный фильтр запросов {type: "public"} - у вас есть документы, соответствующие этому? Когда я вставляю ваш образец документа и запускаю сводную смену «public» на «Feature», я возвращаю документ просто отлично. –

+0

Спасибо, вот и все! – user1202839

+0

Положу это как ответ тогда :) –

ответ

1

При выполнении geoNear, в дополнение к фильтру местоположения, фильтр запроса также применяется. Фильтр запросов - { type: "public" }, если ни один из документов, удовлетворяющих $ geoNear, не имеет типа «public», тогда вы не получите никаких документов.

Смежные вопросы