mongo对分组数据进行排序

Posted pokid

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongo对分组数据进行排序相关的知识,希望对你有一定的参考价值。

分组之后希望按原字段进行排序,比如说时间戳,可以在分组数据中用$first显示原数据,然后在利用管道对该字段进行排序

参考:

db.xx.aggregate([
    "$match":"timestamp":    "$gte":1557813600,"$lte":1560492000,"service":"$in":["bauhinia","internal"],
    
        "$group":
            "_id":"service":"$service","timestamp":"$timestamp",
            "flow":$sum:$multiply:["$rate","$count"],
            "timestamp":"$first":"$timestamp",
            ,
    ,
    "$sort":"timestamp":1,
 ])

go语言代码参考

pipelines := []bson.M
        //如果 $match 位于管道的第一个阶段,可以利用索引来提高查询效率
        "$match": bson.M"timestamp": bson.M"$gte": float64(cursorTimeStamp), "$lte": float64(nowTimeStamp),"service":bson.M"$in":models.ServiceArr,
        "$group": bson.M
            "_id":  bson.M"service": "$service", "timestamp": "$timestamp",
            "flow": bson.M"$sum": bson.M"$multiply": []string"$rate", "$count",
            //额外的timestamp用于排序
            "timestamp":bson.M"$first":"$timestamp",
        ,
        "$sort":bson.M"timestamp":1,
    

 

以上是关于mongo对分组数据进行排序的主要内容,如果未能解决你的问题,请参考以下文章

从最新到最旧的python对Mongo列表进行排序[重复]

三、MySQL数据库之分组排序

SQL如何对分组后的结果进行排序并且取前几名

spark 例子wordcount topk

经典排序算法——希尔排序

如何编写 sql 查询对数据集进行排序或分组