【发布时间】:2017-12-05 13:11:21
【问题描述】:
我在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.联系方式 2.分组
步骤1:首先用户可以添加群组,然后用户将去创建新联系人,此联系人可能包含许多群组或没有群组(群组数据来自群组的下拉列表表,哪个用户在 STEP 1 上完成了这个操作)
例如实时场景:
我是进入应用的用户,
第 1 步:我将添加名为 'angulargroup' 的新组。
第 2 步: 我将在联系人中添加我的详细信息并在下拉列表中选择 angulargroup,这样我就可以属于 angulargroup 现在用户交互结束了。
现在我得到了联系人 ID 和组 ID,我将此组 ID 和联系人 ID 存储在名为 ContactGroup 的表中,如下所示:
所以最后帮我显示组数:
我在 angulargroup 中只添加了一个联系人,所以我想在下图中将 CONTACT COUNT 显示为 1:
如果我在 angulargroup 中添加了两个 contacts 来代替contactcount,我想将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}}
【问题讨论】:
标签: mysql node.js sequelize.js