mongodb aggregate 如果操作多次

问题:有一组类似下面的数据
{"sn":"18160481","status":1,"updateTime":1542691932103}
{"sn":"18160482","status":2,"updateTime":1542691932113}
{"sn":"18160483","status":2,"updateTime":1542691932123}
{"sn":"18160484","status":3,"updateTime":1542691932133}

怎么才能通过aggregate即能得到最新的updateTime,又可以统计status为2的数量

阅读 2.3k
1 个回答

不知道有没有理解对你的意思。最新的updateTime如果是指的按status分组后每组最新的,那就是下面这样的写法:

db.table.aggregate([
    {$group: {_id: "$status", updateTime: {$max: "$updateTime"}, count: {$sum: 1}}}
]);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进