假设我有一个看起来像这样的对象:
{
_id: ObjectID(1234),
name: 'Corvid',
friends: [{
name: 'Magpie',
friends: [{
name: 'Raven'
}, {
name: 'Jackdaw',
friends: [{
name: Friends.ALL_FRIENDS
}]
}]
}, {
name: 'Jay'
}]
}
基本上,我要做的是,对于朋友列表中的每个条目,用Friends.findOne({ name: obj.name })
的结果替换当前对象。
我很容易迭代这样的结构。
function populate(obj=friends) {
if (obj.friends) {
return populate(obj.friends);
}
return friends.findOne({ name: obj.name });
}
但是,我遇到的问题是在该特定区域替换该对象。怎么会这样做?