我试图让用户数量属于特定公司。
这是我的模特;
var Company = Bookshelf.Model.extend({
tableName: 'companies',
users: function () {
return this.hasMany(User.Model, "company_id");
},
users_count : function(){
return new User.Model().query(function(qb){
qb.where("company_id",9);
qb.count();
}).fetch();
},
organization: function () {
return this.belongsTo(Organization.Model, "organization_id");
}
});
在路线中,我使用这样的书架模型;
new Company.Model({id:req.params.id})
.fetch({withRelated:['users']})
.then(function(model){
res.send(model.toJSON())
})
.catch(function(error){
res.send(error);
});
我应该如何使用users_count方法,我有点困惑(可能是因为承诺)
答案 0 :(得分:2)
查看bookshelf-eloquent扩展程序。 withCount()函数可能就是你要找的东西。您的代码看起来像这样:
let company = await Company.where('id', req.params.id)
.withCount('users').first();
答案 1 :(得分:0)
User.collection().query(function (qb) {
qb.join('courses', 'users.id', 'courses.user_id');
qb.groupBy('users.id');
qb.select("users.*");
qb.count('* as course_count');
qb.orderBy("course_count", "desc");
})