当我们使用WaterlineORM .populate()查询时,我们获得了已填充关联的所有属性。
,
User.find({name:'Finn'}).populate('dad').exec(function (err, usersNamedFinn){
if (err) {
return res.serverError(err);
}
return res.json(usersNamedFinn);
});
反应:
[
{
id: 7392,
age: 13,
name: 'Finn',
createdAt: Wed Dec 25 2003 18:00:00 GMT-0600 (CST),
updatedAt: Wed Feb 12 2016 18:06:50 GMT-0600 (CST),
dad: {
id: 108,
age: 47,
name: 'Joshua',
createdAt: Wed Dec 25 1969 00:00:00 GMT-0600 (CST),
updatedAt: Wed Jan 10 2015 12:00:00 GMT-0600 (CST),
dad: null
}
},
]
我需要在响应中只获取已填充的'dad'关联的名称和id (即从响应中删除dad的其他属性)
我该怎么做?
详细信息在此https://github.com/balderdashy/waterline/issues/919
似乎是在v0.12.3中添加的
populate('relation', { select: ['wantedFields', ...] });
在你的模型中,你可以写一个toJson()方法来操作对象:
toJSON() {
// getting the object...
let obj = this.toObject();
// removing some attributes...
delete obj.createdAt;
delete obj.updatedAt;
return obj;
}
,然后进入Controller后的"填充"查询结果,你可以这样做:
.exec(function(err, usersNamedFinn){
if(err){
return res.negotiate(err);
}
return res.json(usersNamedFinn);
});
希望对你有帮助