【发布时间】:2016-11-15 21:29:13
【问题描述】:
我有三个表'cases'、'partners'和'casepartners',结构如下:
案例:id、主题、描述
合作伙伴:id、姓名、地址
casepartners:case,partner,createdAt
我想列出所有案例,同时为每个案例显示案例 ID 相同的 casepartners 记录。
我正在使用此代码:
Case.find().sort('-created').exec(function (err, cases) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.json(cases);
}
});
它可以很好地显示所有案例,但我还想为每个案例对象显示该案例 ID 的 casepartners 列表...
假设有几个合作伙伴订阅了同一个案例,我想列出所有这些合作伙伴,或者只计算有多少合作伙伴订阅了该案例。
我正在使用 Angularjs 列出所有使用 ng-repeat 的案例,但是如果我必须单独调用以显示 ng-repeat 中每个案例的 casepartners 记录,或者通过使用一些将其附加到同一函数中,我有点困惑一种 .populate() 或其他具有实体关系的东西。
这些是定义的模型:
var CaseSchema = new Schema({
subject: {
type: String,
default: '',
trim: true,
required: 'Subject cannot be blank'
},
description: {
type: String,
default: '',
trim: true
},
created: {
type: Date,
default: Date.now
},
customer: {
type: Schema.ObjectId,
ref: 'Customer'
},
category: {
type: Schema.ObjectId,
ref: 'Category'
}
});
var CasePartnerSchema = new Schema({
case: {
type: Schema.ObjectId,
ref: 'Case'
},
partner: {
type: Schema.ObjectId,
ref: 'Partner'
},
created: {
type: Date,
default: Date.now
}
});
var PartnerSchema = new Schema({
name: {
type: String,
trim: true,
default: ''
},
created: {
type: Date,
default: Date.now
},
user: {
type: Schema.ObjectId,
ref: 'User'
}
});
有人可以帮忙吗?
【问题讨论】:
标签: node.js mongoose mean-stack meanjs