2015-08-11 2 views
0

Это одна запись в моем документе, которая содержит поле местоположения, которое мне нужно извлечь.Запрос mongoose не возвращает местоположение

{ 
    "_id": { 
     "$oid": "559c152fa439a961c357f931" 
    }, 
    "POST_ID": "354-20160", 
    "MS_ID": "-", 
    "MS_SPACEID": 0, 
    "CAP_COLOR": "Grey", 
    "METER_TYPE": "SS", 
    "SMART_METE": "Y", 
    "ACTIVESENS": "N", 
    "JURISDICTI": "SFMTA", 
    "ON_OFF_STR": "ON", 
    "OSP_ID": 0, 
    "STREET_NUM": 2016, 
    "STREETNAME": "CHESTNUT ST", 
    "STREET_SEG": 3977000, 
    "RATEAREA": "Area 5", 
    "SFPARKAREA": "Marina", 
    "LOCATION": { 
     "type": "Point", 
     "coordinates": [ 
      37.8007983983, 
      -122.4368696024 
     ] 
    } 
} 

и это, как я определил схему в мангуста

// mongoose scehma 
var mongoose = require('mongoose'); 
var parkingSchema = mongoose.Schema({ 
    "POST_ID": String, 
    "MS_ID": String, 
    "MS_SPACEID": Number, 
    "CAP_COLOR": String, 
    "METER_TYPE": String, 
    "SMART_METE": String, 
    "ACTIVESENS": String, 
    "JURISDICTI": String, 
    "ON_OFF_STR": String, 
    "OSP_ID": Number, 
    "STREET_NUM": Number, 
    "STREETNAME": String, 
    "STREET_SEG": Number, 
    "RATEAREA": String, 
    "SFPARKAREA": String, 
    "LOCATION": { 
     "type": String, 
     "coordinates": [Number] 
    } 
}); 

var Parking = mongoose.model('parking_info', parkingSchema); 
module.exports = Parking; 

Мой запрос, который возвращает записи:

app.get("/parkings", function(req, res){ 
    Parking.find(function(err, parkings){ 
     if(err){ 
      console.log('error..'); 
      return handleError(err); 
     } 
     else { 
      console.log('returning parkings..'); 
      res.send(parkings); 
     } 

    }); 

}); 

дает:

[ 
{"_id":"559c152fa439a961c357f931","POST_ID":"354-20160","MS_ID":"-","MS_SPACEID":0,"CAP_COLOR":"Grey","METER_TYPE":"SS","SMART_METE":"Y","ACTIVESENS":"N","JURISDICTI":"SFMTA","ON_OFF_STR":"ON","OSP_ID":0,"STREET_NUM":2016,"STREETNAME":"CHESTNUT ST","STREET_SEG":3977000,"RATEAREA":"Area 5","SFPARKAREA":"Marina"}, 
{"_id":"559c1530a439a961c357f932","POST_ID":"354-21030","MS_ID":"-","MS_SPACEID":0,"CAP_COLOR":"Green","METER_TYPE":"SS","SMART_METE":"Y","ACTIVESENS":"N","JURISDICTI":"SFMTA","ON_OFF_STR":"ON","OSP_ID":0,"STREET_NUM":2103,"STREETNAME":"CHESTNUT ST","STREET_SEG":3979000,"RATEAREA":"Area 5","SFPARKAREA":"Marina"}, 
{"_id":"559c1530a439a961c357f933","POST_ID":"354-21160","MS_ID":"-","MS_SPACEID":0,"CAP_COLOR":"Yellow","METER_TYPE":"SS","SMART_METE":"Y","ACTIVESENS":"N","JURISDICTI":"SFMTA","ON_OFF_STR":"ON","OSP_ID":0,"STREET_NUM":2116,"STREETNAME":"CHESTNUT ST","STREET_SEG":3979000,"RATEAREA":"Area 5","SFPARKAREA":"Marina"}, 
{"_id":"559c1530a439a961c357f934","POST_ID":"363-05250","MS_ID":"-","MS_SPACEID":0,"CAP_COLOR":"Grey","METER_TYPE":"SS","SMART_METE":"N","ACTIVESENS":"N","JURISDICTI":"SFMTA","ON_OFF_STR":"ON","OSP_ID":0,"STREET_NUM":525,"STREETNAME":"COLUMBUS AVE","STREET_SEG":4295000,"RATEAREA":"Area 3","SFPARKAREA":""} 
... 

Почему место а не в результатах запроса? Может ли кто-нибудь помочь мне исправить это.

+0

Вы не создали какой-либо индекс на поле местоположения? – ZeMoon

+0

нет у меня еще нет, но мне нужно? Я не ищу по координатам, я просто нахожу все документы прямо сейчас. не должно ли местоположение отображаться? –

+0

Если вы не выполняете геоинформационные запросы, вам не нужен индекс. Взгляните на ответ, который я только что разместил. – ZeMoon

ответ

2

Проблема с объявлением поля РАСПОЛОЖЕНИЕ:

var parkingSchema = mongoose.Schema({ 
    ... 
    "LOCATION": { 
     "type": String,   //Mongoose assumes the field is of String type. 
     "coordinates": [Number] 
    } 
}); 

Вы можете исправить это, выполнив:

var parkingSchema = mongoose.Schema({ 
    ... 
    "LOCATION": { 
     "type": {"type": String},   
     "coordinates": [Number] 
    } 
}); 
+0

Спасибо, это сработало .. но я до сих пор этого не понимаю. есть ключевое слово в мангусте или что-то еще? –

+2

Да, объект с полем типа является другим способом задания свойств поля схемы в Mongoose. Напр. 'email: {type: String, unique: true, sparse: true}' или 'createdAt: {type: Date, default: Date.now}'. Этот способ используется, когда необходимо указать другие характеристики поля схемы. – ZeMoon