2016-08-10 4 views
0

У меня есть запрос mongo, который отлично работает на моем рабочем сервере. Но он не возвращает результаты на моем dev-сервере. Мой db на сервере dev - это копия db на live.geoNear не работает на Dev Server

Prod - AWS:
Монго v3.0.7

Dev - Digital Ocean
Монго v3.0.9

Монго запросов (сери с использованием RoboMongo) - Координаты замаскированы для анонимности;)

db.getCollection('$cmd').findOne({ 
    "geoNear": "ProviderData", 
    "near": [ 
    XX.1325611, 
    XX.1357446 
    ], 
    "spherical": true, 
    "distanceMultiplier": 6378137, 
    "query": { 
    "BusinessType": "557ff3f98b424a1009776ba5", 
    "Status": "1" 
    } 
}) 

Документ, который должен быть возвращен в поиске, выглядит следующим образом: удалены нерелевантные поля:

{ 
    "_id" : ObjectId("566xxxxxxxxxxxxxxxxxxdb0"), 
    "ProviderName" : "Test Fitness Business", 
    "BusinessType" : "557ff3f98b424a1009776ba5", 
    "Location" : { 
     "Longitude" : XX.135745, 
     "Latitude" : XX.132561 
    }, 
    "ImageFlag" : "1", 
    "Status" : "1", 
    "OrderEmail" : "[email protected]", 
    "Radius" : "12", 
    "ParentCompanyName" : "Test Fitness Business", 
} 

Мой Live сервер возвращает вышеуказанный документ и два других. На сервере Dev я просто получаю

{ 
    "ok" : 0, 
    "errmsg" : "no geo indices for geoNear" 
} 

Что я делаю неправильно?

EDIT: Другие простые запросы CRUD работают отлично на обоих серверах.

ответ

0

Вы должны использовать геоиндекс: 2D или 2DSphere, если вы хотите выполнить $geoNear. Итак, просто скопируйте индекс поля местоположения от производства к серверу разработки.

+0

Не обращайте на это внимания, но как мне это сделать? – eNeMetcH