我在mongodb上的表中以geojson格式将数据存储在名为“ Alerts”的表中
[
{
"_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"
}
}
]
我想使用模型查询来检索嵌套在“ extAlertData”内部的字段“ id”和时间。
预期输出:
[
{
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的回送框架。
谢谢。
答案 0 :(得分:0)
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);
}
});