mongo聚合操作

2019-06-09  本文已影响0人  风亡小窝

每个用户的发帖量

db.getCollection("forums").aggregate([
    {$group: {
        _id: '$user_id', 
        count: {$sum:1}, 
    }},
    {$lookup:{
       localField: '_id',
       from:'users',
       foreignField:'id',
       as: 'user_info',
    }},
    {$addFields: {
        user_info: {$arrayElemAt: ['$user_info', 0]},
    }},
    {$sort:{count:-1}},
    {$project: {
        user_id:'$_id',
        nickname: '$user_info.nickname',
        count:'$count',
    }}
])

对帖子的重新展示(forum_view)

db.getCollection("forums").aggregate([
    {$lookup: {
            "localField": "user_id",
            "from": "users",
            "foreignField": "id",
            "as": "user_info"
        }
    },
    {$addFields: {
            "user_info": {
                "$arrayElemAt": [
                    "$user_info",
                    0
                ]
            },
            "forum_picture.images": {
                "$ifNull": [
                    "$images",
                    "$forum_picture.images"
                ]
            },
            "forum_picture.thumbs": {
                "$ifNull": [
                    "$thumbs",
                    "$forum_picture.thumbs"
                ]
            }
        }
    },
    {$project: {
            "_id": 0,
            "forum_id": "$id",
            "idol_id": 1,
            "user_id": 1,
            "title": 1,
            "content": 1,
            "nickname": "$user_info.nickname",
            "forum_picture": 1,
        }
    }
])
上一篇 下一篇

猜你喜欢

热点阅读