我正在使用bookshelf.js作为节点的ORM。我有2个型号
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) {});
,但总数等于posts
表中的总帖子数,而不是id
标识的类别下的总帖子数。这是否可能,或者我应该创建一个直接查询categories_posts
表的帮助方法?
感谢。
答案 0 :(得分: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
标识的类别下提供正确的帖子值。