Как сделать запрос на вложенный объект, используя запрос модели loopback? - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть эти данные на mongodb в таблице с именем "Alerts" в формате geojson

[
  {
   "_id" : ObjectId("5be40b8099d5b81e6115d517"),
   "title" : "Real-time earthquake",
   "priority" : "high",
   "status" : NumberInt("1"),          
   "extAlertData" : {
                     "type" : "Feature",
                       "properties" : {
                                       "mag" : 4.11,
                                       "place" : "12km S of Tres Pinos, 
                                                  CA",
                                        "time" : 1541163534230,
                                      },
                        "geometry" : {
                                      "type" : "Point",
                                      "coordinates" : [
                                                       -121.3146667,
                                                       36.6801667,
                                                       6.48
                                                      ]
                                    },
                        "id" : "nc73105276"
                     }
 }
 {
  "_id" : ObjectId("5be401c39b9e021a4c1a5c80"),
  "title" : "Real-time earthquake",
  "priority" : "high",
   "status" : NumberInt("1"),          
   "extAlertData" : {
                     "type" : "Feature",
                     "properties" : {
                                     "mag" : 4.5,
                                      "place" : "107km NW of Tobelo, 
                                         Indonesia",
                                       "time" : 1541665816710,
                                    },
                     "geometry" : {
                                    "type" : "Point",
                                     "coordinates" : [
                                           127.2763,
                                           2.3671,
                                           31.55
                                           ]
                                  },
                      "id" : "us1000hp6t"
                   }
   }
]

Я хочу получить поле "id", которое вложено в "extAlertData" и время, используя запрос модели.

Ожидаемый результат:

[
 {
   id:'nc73105276',
   time:'1541163534230'
 },
 {
   id:'us1000hp6t',
   time:'1541665816710'
 }
] 

Следующий запрос не работает.

db.Alerts.find({fields : {"extAlertData.id": true}},
                    function (err, Alerts){
                        //process alert extAlertData.id
                    }
});

Запрос получает следующую ошибку:

TypeError: Cannot read property 'id' of undefined

Как выполнить запрос с использованием фильтра полей в mongoDB? Я использую петлевой каркас узла js.

Заранее спасибо.

1 Ответ

0 голосов
/ 09 ноября 2018

var yourdata =[];
var cursor = db.collection('Alerts').find();
            
            cursor.each(function(err, item) {

                if (item != null) {
                    var yourid = item.extAlertData.id;
		    var yourtime = item.extAlertData.properties.time;
		    var pushdata = {id: yourid,time: yourtime}; 		
		    yourdata.push(pushdata);	
                }
            });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...