mongodb 分组聚合_MongoDB 聚合分组取第一条记录的案例及实现

本文介绍了如何使用MongoDB的aggregate方法结合forEach处理数据,来根据refererDomain分组并获取每组最新的记录,将结果导入新集合。通过两次forEach操作,实现了从原始数据到目标集合的转换,整个过程在1秒内完成。
摘要由CSDN通过智能技术生成

关键字:MongoDB; aggregate;forEach

今天开发同学向我们提了一个紧急的需求,从集合mt_resources_access_log中,根据字段refererDomain分组,取分组中最近一笔插入的数据,然后将这些符合条件的数据导入到集合mt_resources_access_log_new中。

接到这个需求,还是有些心虚的,原因有二,一是,业务需要,时间紧;二是,实现这个功能MongoDB聚合感觉有些复杂,聚合要走好多步。

数据记录格式如下:

记录1

{

"_id" : ObjectId("5c1e23eaa66bf62c0c390afb"),

"_class" : "C1",

"resourceUrl" : "/static/js/p.js",

"refererDomain" : "1234",

"resourceType" : "static_resource",

"ip" : "17.17.13.13",

"createTime" : ISODate("2018-12-22T19:45:46.015+08:00"),

"disabled" :0}

记录2

{

"_id" : ObjectId("5c1e23eaa66bf62c0c390afb"),

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值