2015-02-09 118 views
6

說我有包含像下面從另一個集合引用文檔領域的集合:有沒有一種方法可以在Mongoose中進行投影?

ClassEnrollment

_id | student | class 
--------------------- 

和類的類集合中有以下模式:

_id | className | teacher | building | time | days | classNumber | description 
------------------------------------------------------------------------------ 

如果我有一組3000個類,我想在服務器上填充,我可能會做類似於ClassEnrollment.populate(listOfClassEnrollments, {path: 'class'});

在我的情況下,我不想想要雖然是大部分類字段,只是名字。如果我從包含所有字段的數據庫中獲得3000個類的列表,我最終會以網絡延遲的形式獲得性能優勢(這些3000個類必須從託管數據庫傳輸到服務器,這可能是50 MB的原始數據,如果描述很長)

是否有一種方法來填充只有名稱通過一個選項來填充類註冊列表(我認爲它會像投影一樣工作,所以db只是響應用類名和_id代替所有的類信息)?

回答

8

可以使用select選項在populate調用做到這一點:

ClassEnrollment.populate(listOfClassEnrollments, {path: 'class', select: 'className'}); 
+0

這正是我一直在尋找。謝謝! – Asksdumbquestions 2015-02-09 17:45:42

+0

如果你想選擇多個,使用空格分隔:''className teacher building'' – steampowered 2016-04-17 17:03:04

相關問題