当我们使用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
}
},
]
我需要仅在回复中获取已填充的“爸爸”的姓名和身份证明。关联(即从响应中删除爸爸的其他属性)
我该怎么做?
答案 0 :(得分:0)
此处的详细信息https://github.com/balderdashy/waterline/issues/919
似乎已经在v0.12.3中添加了
populate('relation', { select: ['wantedFields', ...] });
答案 1 :(得分:0)
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);
});
希望这可以帮到你