2014-10-10 2 views
0

bookshelf.js를 노드의 ORM으로 사용하고 있습니다. 나는 2 개의 모델을 가지고있다bookshelf.js를 사용하여 카테고리별로 게시물 가져 오기

Post = bookshelf.Model.extend({ 
    tableName: 'posts', 
    categories: function() { 
     return this.belongsToMany('Category'); 
    } 
}); 

Category = bookshelf.Model.extend({ 
    tableName: 'categories', 
    posts: function() { 
    return this.belongsToMany('Post'); 
    } 
}); 

그들은 categories_posts 테이블과 관련이있다.

이제 사용자가 특정 카테고리의 모든 소식을 볼 수있게하려고합니다. 하지만 나는 모든 게시물을 원하지 않는다. 나는 페이지 매김을 원한다. 하지만 특정 카테고리 아래 총 게시물을 가져올 수 없으며 항상 시스템에있는 총 게시물을 반환합니다.

나는 Category.forge({id: id}).posts().query().count('*').then(function(total) {});을 시도했지만 id에 의해 식별 된 카테고리의 총 게시물 수와 대조적으로 총계는 posts 개의 총 게시물 수와 같습니다. 심지어 이것이 가능합니까 아니면 categories_posts 테이블을 직접 쿼리하는 도우미 메서드를 만들어야합니까?

감사합니다.

답변

1

좋아, 해결책을 찾은 것 같아.

Category.forge({id: id}).fetch({withRelated: [{posts: function(q) { 
    q.count('* AS count'); 
}}]}) 
.then(function(total) { 
    console.log(total.toJSON().posts[0].count); 
}); 

id으로 식별되는 카테고리에서 올바른 게시물 가치를 제공합니다.

관련 문제