選擇字段我有一個JSON結構是這樣的:貓鼬從填充陣列
// Users Collection
[{
"id": "1",
"email": "[email protected]",
"contacts": [
{
"user": "2", // reference
"nickname": "blub"
},
{
"user": "3", // reference
"nickname": "blub"
},
],
"otherfield": "anything"
}]
的User
對象包含一個數組contacts
這基本上代表引用Users
的列表。爲了允許爲每個用戶存儲額外的數據(如nickname
),我有一個對象數組,而不是一個ObjectId數組。
現在我想通過指定要解析的字段來填充聯繫人(例如,ID和電子郵件)。因此,預期輸出是這樣的:
{
"id": "1",
"email": "[email protected]",
"contacts": [
{
"user": {
"id": "2",
"email": "[email protected]",
// without other fields
},
"nickname": "blub"
}
],
"otherfield": "anything"
}
我已經試過這樣的事情
User.findById(id)
.populate('contacts.user')
.select('contacts.user.email')
但後來我的聯繫人數組只包含一個空的對象。
另外,如果我試試這個:
User.findById(id).populate({
path: 'contacts.user',
select: 'email'
})
結果只是沒有任何人口父用戶:
{
email: "[email protected]",
id: "1"
}
謝謝。這是行得通的。 –