Reputation: 111
I have this data on mongodb in a table named "Alerts" in geojson format
[
{
"_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"
}
}
]
I want to retrieve the field "id" which is nested inside "extAlertData" and time using model query.
Expected Output :
[
{
id:'nc73105276',
time:'1541163534230'
},
{
id:'us1000hp6t',
time:'1541665816710'
}
]
Following query does not working.
db.Alerts.find({fields : {"extAlertData.id": true}},
function (err, Alerts){
//process alert extAlertData.id
}
});
Query is retrieving the following error:
TypeError: Cannot read property 'id' of undefined
How can I query using fields filter in mongoDB? I am using loopback framework of node js.
Thanks in advance.
Upvotes: 2
Views: 416
Reputation: 362
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);
}
});
Upvotes: 1