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

 

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