mongodb如何在aggregate中进行distinct操作

有一个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 }
    }},
        
    
])

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章