Mongodb 学习笔记 (10)某一时间间距内,以某一ID去重查询记录

测试数据样例为:

{
	"_id" : ObjectId("5d3e79559ee7b47488348112"),
	"member_id" : 27,
	"check_time" : 1564374565,
	"capture_image" : "/2019-7-29/2019-7-29-12h29m25s545085.jpg"
}

需求为:在每5秒的时间间隔中,以member_id作为去重条件,筛查记录。也就是小李在5秒内,只显示他的一条记录。

下面是查询语句:

db.t_pass_record.aggregate([
    { "$group": {
        "_id": {
			"member_id":"$member_id",
            "time":{
				"$subtract": [
					"$check_time",
					{ "$mod": [ "$check_time", 5 ] } //5秒间隔
				]
			}
        },
        "check_time": { "$first": "$check_time" },
        "member_image_id": { "$first": "$member_image_id" },
        "capture_image": { "$first": "$capture_image" }
    }}
])

查询结果为:

{ "_id" : { "member_id" : 33, "time" : 1564543895 }, "check_time" : 1564543898, "member_image_id" : "5d40fc86bd78200001667538", "capture_image" : "group1/M00/00/55/wKgA8F1BC5qALL9sAAFeUgmK_2o631.jpg" }
{ "_id" : { "member_id" : 33, "time" : 1564543700 }, "check_time" : 1564543703, "member_image_id" : "5d40fc86bd78200001667538", "capture_image" : "group1/M00/00/55/wKgA8F1BCtmATwx8AAHfa9vhfTk663.jpg" }
{ "_id" : { "member_id" : 33, "time" : 1564543650 }, "check_time" : 1564543651, "member_image_id" : "5d40fc86bd78200001667538", "capture_image" : "group1/M00/00/55/wKgA8F1BCqWAHwSEAAC96W47m7g298.jpg" }
{ "_id" : { "member_id" : 33, "time" : 1564542510 }, "check_time" : 1564542511, "member_image_id" : "5d40fc86bd78200001667538", "capture_image" : "group1/M00/00/55/wKgA8F1BBi-AO20RAAFnjcwZWk8573.jpg" }
{ "_id" : { "member_id" : 35, "time" : 1564542250 }, "check_time" : 1564542251, "member_image_id" : "5d410496bd7820000166753b", "capture_image" : "group1/M00/00/55/wKgA8F1BBSuAIQEWAAC7r7K82sQ000.jpg" }

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值