所以我想获得帖子中评论的数量,而不是所有评论本身
我已经将它与modifyEager一起使用,但是在这种情况下,as('count')似乎没有任何作用

.eager('comments').modifyEager("comments", builder => {
    builder.count().as('count')
})


这真的很乏味,因为每个帖子的commentsCount具有以下值:

[]
[]
[]
[]
[ Post { 'count(*)': 1 } ]
[]


所以我很重要,但是我肯定做错了

if(commentCount.length > 0)
    return data[0]["count(*)"]
return 0


有任何想法吗?

编辑:显示工作代码以供参考,以帮助人们

module.exports = async (organizationId, scope) => {
    return await Post.query()
    .where("organization_id", organizationId)
    .orderBy("post_id", "desc")
    .limit(scope.limit)
    .offset(scope.offset)
    .select(
        'posts.*',
        Post.relatedQuery('comments').count().as('commentsCount')
    )
    .eager('users')
}

最佳答案

无法测试,但示例以这种方式出现在docs上:

const posts = await Post
  .query()
  .select(
    'Post.*',
    Post.relatedQuery('comments').count().as('numberOfComments')
  );

console.log(posts[4].numberOfComments);

关于node.js - objection.js ModifyEager .as('count')似乎对.count()没有任何作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55066781/

10-11 04:10