[英]MongoDB sort query?
db.data.insert({userAjax: 'sean',date:'26/04/2014',latv:'78.134123', lonv:'43.
342123', distance:'1.23', hours:'0', minutes:'4', seconds:'21', speed: '1.04' })
db.data.insert({userAjax: 'sean',date:'26/04/2014',latv:'78.134123', lonv:'43.
342123', distance:'1.23', hours:'0', minutes:'4', seconds:'21', speed: '1.04' })
db.data.insert({userAjax: 'sean',date:'25/04/2014',latv:'78.134123', lonv:'43.
342123', distance:'0.43', hours:'0', minutes:'2', seconds:'47', speed: '1.33' })
db.data.insert({userAjax: 'sean',date:'25/04/2014',latv:'78.134123', lonv:'43.
342123', distance:'0.43', hours:'0', minutes:'7', seconds:'55', speed: '1.33' })
這是我收藏的樣本結構。 在網站上,我需要顯示日期,但只顯示該日期的最新插入內容,
數據是通過ajax從移動電話(地理位置)傳來的,並且必須在客戶端顯示插入的最新日期。
好吧,大概您是按給定用戶的日期排序的,所以:
db.data.find({ "userAjax": "sean" }).sort({ "date": -1 }).limit(1)
最晚給該用戶一個結果。
另一方面,如果您每天都在尋找最后的結果,則可以在.aggregate()
函數的幫助下進行此.aggregate()
:
db.data.aggregate([
{ "$match": { "userAjax": "sean" } },
{ "$project": {
"_id": {
"date": {
"year": { "$year": "$date" },
"month": { "$month": "$date" },
"day": { "$dayOfMonth": "$date" }
}
},
"userAjax": "$userAjax",
"date": "$date",
"latv": "$latv",
"lonv": "$longv",
"distance": "$distance",
"hours": "$hours",
"minutes": "$minutes",
"seconds": "$seconds",
"speed": "$speed"
}},
{ "$sort": { "_id": -1 } },
{ "$group": {
"_id": { "$first": "$_id" },
"userAjax": { "$first": "$userAjax" },
"date": { "$first": "$date" },
"latv": { "$first": "$latv" },
"lonv": { "$first": "$longv" },
"distance": { "$first": "$distance" },
"hours": { "$first": "$hours" },
"minutes": { "$first": "$minutes" },
"seconds": { "$first": "$seconds" },
"speed": { "$first": "$speed" }
}}
])
這要簡潔得多,但這就是您想要的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.