Подсчет родительских и дочерних строк из ассоциации sequelize - PullRequest
1 голос
/ 04 июля 2019

Я новичок в продолжении. Я пытаюсь получить комментарии и ответы на эти комментарии от ассоциации hasMany, и мне приходится подсчитывать родительские комментарии и ответы на каждый комментарий, который я получаю

Я использую sequelize findAndCountAll для подсчета строк родительского комментария, что работает нормально, теперь я считаю ответы на каждый комментарий, который я использую

attributes:{include: [[mysql.sequelize.fn("COUNT", mysql.sequelize.col("comment.comment_id")), "Count"]]}

Подсчет ответов первого комментария, но получение, дает остаток родительских комментариев

model
    const comment = model.comment;

    comment.hasMany(comment,
        {
            foreignKey: 'parentCommentId',
            as: "replies"
        });

query
function findWhere(where, pagination){

    return mysql.comment.findAndCountAll({
        where,
        offset: pagination.offset,
        limit: pagination.count,

        // attributes:{include: [[mysql.sequelize.fn("COUNT", mysql.sequelize.col("comment.comment_id")), "Count"]]},

        include: [{
            model: mysql.comment,
            as: "replies",
            offset: 0,
            limit: 1
        }]

    });
}

Это ответ, который он дает

{
    "count": 10,
    "rows": [
        {
            "commentId": 2,
            "userId": 7,
            "postId": 1,
            "mediaId": null,
            "commentText": "2 Updated Wao amazing post 13",
            "parentCommentId": null,
            "createdAt": "2019-07-01T05:20:00.000Z",
            "updatedAt": "2019-07-04T02:35:49.000Z",
            "Count": 10,
            "replies": [
                {
                    "commentId": 4,
                    "userId": 7,
                    "postId": null,
                    "mediaId": null,
                    "commentText": "Wao amazing post",
                    "parentCommentId": 2,
                    "createdAt": "2019-07-02T04:08:29.000Z",
                    "updatedAt": "2019-07-02T04:08:29.000Z"
                }
            ]
        }
    ]
}

Что неверно, так как не отображает оставшиеся комментарии родителей

Проблема в этом

attributes:{include: [[mysql.sequelize.fn("COUNT", mysql.sequelize.col("comment.comment_id")), "Count"]]}
...