2015-02-09 162 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

相关问题