有一个mongodb的集合
要按照product_id进行分组,统计ip数去掉重复进行统计
如果是mysql的话就好操作。 但是用mongodb来处理,我找了半天,也没发现有distinct对等的函数
我的思路是进行二次分组
原理: 先使用第一个分组对指定键上的所有值去重,然后使用第二个分组统计这些值。
db.goods.exposure.trace.pc.aggregate([
{ "$match": { "create_time": { "$gte": 1625068800,"$lte":1631030399},'product_id':{
'$in': [8628624]
}}},
{ "$group": {
"_id": {
"auid": "$product_id",
"uid": "$ip"
},
"count": { "$sum": 1 }
}},
{ "$group": {
"_id": '$_id.auid',
"count": { "$sum": 1 }
}},
])