簡體   English   中英

MongoDB排序查詢?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM