我一直在嘗試使用MongoDB Aggregation操作符來獲取最後一條記錄(基於'fixtm',它是fixtime)。每條記錄都有一個設備ID,修復時間和一些其他信息,如緯度,經度,速度等。我下面的聚合工作正常,它返回給我每個設備的最後一個記錄。但是,我怎樣才能獲得緯度,經度等其他領域呢?我曾嘗試在$項目列表中添加諸如lat: 1
之類的內容,但無論我嘗試了多少變體,其他值都不顯示。我認爲這是因爲它們不存在於組運營商的_id字段或什麼東西?任何指針都會非常有幫助。由於MongoDB聚合 - 分組依據,在結果中選擇其他字段
function() {
return db.gpspos.aggregate(
[
{
$sort: {
devid: 1,
fixtm: 1
}
}, {
$group: {
_id: "$devid",
lastData: {
$last: "$fixtm"
}
}
}, {
$project: {
_id: 0,
device_id: '$_id',
fixtime: '$lastData'
}
}
]
)
}
什麼,我從上面得到的是
{ "device_id" : 5, "fixtime" : 1462368405000 }
{ "device_id" : 4, "fixtime" : 1462372097000 }
我所看到的是在我的MongoDB
{
"_id": {
"$oid": "5729dc83f5be2411fb28c7c3"
},
"devid": 5,
"devnm": "M.M (Samsung S3)",
"fixtm": 1462360893000,
"addr": "{address}",
"lat": 1.433775,
"lon": 103.7859717,
"spdkm": 0
}
這
{ "device_id" : 5, "fixtime" : 1462368405000, "speed": 70.3, "lat": 103.33434 }
{ "device_id" : 4, "fixtime" : 1462372097000, "speed": 70.3, "lat": 101.33434 }
文檔的例子
您是否可以編輯您的問題以包含您使用上述結果獲得的一些示例文檔? – chridam
當然chridam,完成 –