我有3个收藏品,
Users
,
Clan
,其中包含许多Clanmembers
Clanmembers
,其中包含许多Users
所以当我做的时候
Clan.find().populate('clanmembers');
它工作正常并返回结果,但后来我得到了类似的东西:
{ clanmembers:
[ { role: 'Entry',
owner: 2,
member: 2,
id: 1,
createdAt: null,
updatedAt: null } ],
owner:
{ username: 'tester',
email: 'tester',
about: 'This is\n\na test hello\n\n\n\n\n\n\n\n\nhiiii',
profileurl: '',
avatar: 'asd.jpg',
rank: '1',
id: 2,
createdAt: '2015-10-25T10:15:20.000Z',
updatedAt: '2015-10-25T21:31:47.000Z' },
clanname: 'testset',
clantag: 'testin',
id: 2,
createdAt: '2015-10-26T01:07:02.000Z',
updatedAt: '2015-10-26T01:07:02.000Z' }
我还希望能够populate
clanmembers
数组的owners
以便我可以获取用户名以及不属于该组的人,如何填充此嵌套阵列?或者它是不可能的,我将不得不通过他们的ID循环/找到每一个。任何信息都会非常好,谢谢。
答案 0 :(得分:2)
目前无法做到这一点,虽然已经在talks已经有一段时间了。
正如您所提到的,您必须手动完成填充。但是你可以避免为每个子文档单独调用。
我通常做的是在数组中收集所需的id并对数据库运行单个查询,然后维护一个id到文档的地图,这使得在多个地方使用它非常方便。