【发布时间】:2019-10-28 02:40:20
【问题描述】:
我的作物模型有这个架构
var CropSchema = new mongoose.Schema({
name: String,
zones: [{
type: Schema.Types.ObjectId,
ref: 'zone'
}],
...
});
我的区域模型的这个架构
var ZoneSchema = new mongoose.Schema({
name: String,
poor: [{
type: Schema.Types.ObjectId,
ref: 'condition'
}],
...
});
我的条件模型的这个架构
var ConditionSchema = new mongoose.Schema({
name: String,
action_on_controls: [{
type: Schema.Types.ObjectId,
ref: 'control'
}],
...
});
我的控制模型的这个架构
var ControlSchema = new mongoose.Schema({
name: String,
...
});
我在 Node 中获取所有作物的方式是这样的:
public index(req: Request, res: Response) {
return Crop.find().populate('zones').populate({
path: 'zones',
populate: [
{
path: 'poor', populate: [
{ path: 'action_on_controls' }]
}
]
}).exec()
.then(respondWithResult(res, 200))
.catch(handleError(res, 500));
}
我获得单个作物的方式是这样的:
public show(req: Request, res: Response) {
return Crop.findById(req.params.id).populate({
path: 'zones',
populate: [
{
path: 'poor', populate: [
{ path: 'action_on_controls' }]
}
]
}).exec()
.then(handleEntityNotFound(res))
.then(respondWithResult(res, 200))
.catch(handleError(res, 500));
}
如您所见,部分:
.populate({..})
重复两次。
如何保持相同的填充配置,这样我就不必一直编写/更新相同的东西?
【问题讨论】:
标签: node.js angular mongoose mean-stack mongoose-populate