найти количество комментариев для каждого пользователя - PullRequest
0 голосов
/ 23 января 2019

У нас есть структура для веб-сайта, подобная следующей:

{
    "_id" : ObjectId("52b3833bd3e98582d2bfb628"),
    "author" : {
        "name" : "Graydon Hoare",
        "email" : "..."
    },
    "title" : "Why Rust ditched pure functions",
    "body" : "sth",
    "starred" : 105,
    "comments" : [ 
        {
            "user" : "hypster",
            "upVotes" : 30,
            "downVotes" : 2,
            "text" : "....",
            "replies" : [ 
                {
                    "user" : "homoiconic",
                    "upVotes" : 15,
                    "downVotes" : 0,
                    "text" : "Here comes the Big Boss, Hu! Simon Peyton-Jones."
}

я хочу рассчитать количество комментариев (также может быть найдено в ответах) для каждого пользователя и проверить, больше ли оно 1, получить его.

Я реализовал код, показанный ниже:

db.links.aggregate([
    {
        $unwind: "$comments.user"
    },
    {
        $unwind: "$comments.replies.user"
    },
    {
        $group: {
            _id: "$comments.user",
            totalComments: {$sum: "$name"},
            count: {$sum: 1}
        }
    },

])

Другими словами, мы хотим подсчитать, сколько комментариев пользователь оставляет на сайте для каждого поста, если его больше, чем один, получить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...