SuperLGX 2017-05-05 07:52 采纳率: 0%
浏览 4319

mongo 聚合查询 分组,求最大值

数据
聚合查询实在是要了老命了,下面是模拟数据:

 {
    "_id" : ObjectId("590c15751f70bd329f8a972d"),
    "_class" : "com.birdnest.model.AppPublish",
    "user" : "admin",
    "deviceType" : "nurse",
    "version" : "1.1。2。2",
    "message" : "范德萨312313213213范德萨",
    "creation" : ISODate("2017-05-05T06:02:29.300Z")
}

{
    "_id" : ObjectId("590c15751f70bd329f8a972e"),
    "_class" : "com.birdnest.model.AppPublish",
    "user" : "admin",
    "deviceType" : "nurse",
    "version" : "1.1。2。2",
    "message" : "范德萨312313213213范德萨",
    "creation" : ISODate("2017-05-05T06:02:29.447Z")
}

{
    "_id" : ObjectId("590c157b1f70bd329f8a972f"),
    "_class" : "com.birdnest.model.AppPublish",
    "user" : "admin",
    "deviceType" : "bed",
    "version" : "1.1。2。2",
    "message" : "范1123德萨312313213213范德萨",
    "creation" : ISODate("2017-05-05T06:02:35.731Z")
}

{
    "_id" : ObjectId("590c157c1f70bd329f8a9730"),
    "_class" : "com.birdnest.model.AppPublish",
    "user" : "admin",
    "deviceType" : "bed",
    "version" : "1.1。2。2",
    "message" : "范1123德萨312313213213范德萨",
    "creation" : ISODate("2017-05-05T06:02:36.164Z")
}

{
    "_id" : ObjectId("590c158a1f70bd329f8a9733"),
    "_class" : "com.birdnest.model.AppPublish",
    "user" : "admin",
    "deviceType" : "room",
    "version" : "1.1.112",
    "message" : "范1123德萨312313213213范德萨",
    "creation" : ISODate("2017-05-05T06:02:50.082Z")
}
{
    "_id" : ObjectId("590c158a1f70bd329f8a9734"),
    "_class" : "com.birdnest.model.AppPublish",
    "user" : "admin",
    "deviceType" : "room",
    "version" : "1.1.112",
    "message" : "范1123德萨312313213213范德萨",
    "creation" : ISODate("2017-05-05T06:02:50.238Z")
}

需求
按照deviceType分类,获得其中每个分类最新的一个版本号

结果举例

 /* 1 */
{
    "deviceType" : "bed",
    "version" :"1.1.112")
}

/* 2 */
{
    "deviceType" : "room",
    "version" :"1.1.112")
}

/* 3 */
{
    "deviceType" : "nurse",
    "version" : "1.1.112")
}
  • 写回答

4条回答 默认 最新

  • SuperLGX 2017-05-05 07:58
    关注

    下面这个语句是我自己写的,但是存在很多问题

     db.appPublish.aggregate(
        {$group : {_id :"$deviceType",creation : {$max : "$creation"}}}
    );
    

    1._id不能映射到对象上
    2.version不能写在group中

    实在有点弄不懂这个语法
    结果

     /* 1 */
    {
        "_id" : "bed",
        "creation" : ISODate("2017-05-05T06:02:44.750Z")
    }
    
    /* 2 */
    {
        "_id" : "room",
        "creation" : ISODate("2017-05-05T06:02:50.397Z")
    }
    
    /* 3 */
    {
        "_id" : "nurse",
        "creation" : ISODate("2017-05-05T06:02:29.447Z")
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料