2015-10-26 23 views
1

我有3點集合,如何使用SailsJS填充嵌套的相關集合?

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' } 

我想要什麼,也能夠populateclanmembers陣列的owners,這樣我可以得到的用戶名和什麼不可以的clanmembers,我怎樣才能填充這個嵌套數組?或者這是不可能的,我將不得不循環/找到每個人的ID。任何信息將非常感謝你。

回答

2

儘管它已經在talks很長一段時間了,但現在還不能完成。

正如您所提到的,您必須手動進行填充。但是您可以避免爲每個子文檔分別調用。

我通常會做的是在數組中收集所需的id並對數據庫運行一個查詢,然後維護一個文檔的id映射,這使得在多個位置使用它非常方便。