我在 mysql
中有三个表这是我的表结构:
var Contact = sequelize.define('contact', {
gsm: {
type: Sequelize.STRING,
unique: true,
required: true
},
firstName: Sequelize.STRING,
lastName: Sequelize.STRING,
street: Sequelize.STRING,
city: Sequelize.STRING,
region: Sequelize.STRING,
postcode: Sequelize.STRING,
dob: Sequelize.DATE,
email: {
type: Sequelize.STRING,
unique: true,
defaultValue: true
},
company: Sequelize.STRING,
url: Sequelize.STRING,
country: Sequelize.STRING,
data1: Sequelize.STRING,
data2: Sequelize.STRING,
data3: Sequelize.STRING,
// resetPasswordToken: Sequelize.STRING,
// resetPasswordExpires: Sequelize.DATE,
// lastLoggedIn: Sequelize.DATE
})
var Group = sequelize.define('group', {
groupname: {
type: Sequelize.STRING,
unique: true,
required: true
},
})
var ContactGroup = sequelize.define('contactgroup', {
/* Empty */
})
ContactGroup.belongsTo(Contact, {
onDelete: 'CASCADE'
});
ContactGroup.belongsTo(Group, {
onDelete: 'CASCADE'
});
Group.hasMany(ContactGroup, {
onDelete: 'CASCADE'
});
我的情景: 我的项目中有两个UI:
1.Contact 2.Group
第1步:第一位用户可以添加组,然后用户将创建新联系人,此联系人可能包含多个组或没有组(组数据来自组中的下拉列表表,用户在STEP 1上完成此操作)
例如实时情景:
我是进入申请的用户,
第1步:我将添加一个名为'angulargroup'的新组。
第2步:我会在联系人中添加我的详细信息,然后在下拉列表中选择 angulargroup ,这样我就可以属于angulargroup 现在用户互动。
现在我获得了联系人ID和组ID,我将这个组ID和联系人ID存储在我的名为 ContactGroup 的表中,如下所示:
所以最后帮我展示小组的数量:
我在 angulargroup 中只添加了一个联系人,因此我想在下图中将 CONTACT COUNT 显示为1:
如果我在contactcount位置的 angulargroup 中添加了两个联系人,我想将contactcount显示为 2
我的api.js代码:
exports.getNewGroup = function(req, res) {
Group.findAndCountAll({
attributes: ['id', [sequelize.fn('COUNT', sequelize.col('contactgroups.groupId')),
'contactCount'
]],
include: [{
model: ContactGroup,
}]
}).then(function(data) {
return res.status(200).send(data);
}).catch(function(err) {
return res.status(400).send(err.message);
});
};
现在如何在UI中显示:
table.table
tr
th(style='display : none;') S.no
th Name
th Contacts Count
tr(ng-repeat='group in groups | filter:test')
td(style='display : none;') {{$index+1}}
td {{group.groupname}}
td {{group.contactId}}
答案 0 :(得分:0)
最后我明白了:
以下是答案:
我的api.js:
exports.getNewGroup = function (req, res) {
Group.findAll({
attributes: {
include: [
[sequelize.fn('COUNT', sequelize.col('contactgroups.groupId')), 'contactsCount']
],
},
include: [{
model: ContactGroup,
attributes: [],
}],
group: ['Group.id'],
raw: true
}).then(function (data) {
return res.status(200).send(data);
}).catch(function (err) {
return res.status(400).send(err.message);
});
};