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