首页 文章

有没有办法在Mongoose中填充投影?

提问于
浏览
8

假设我有一个包含引用来自另一个集合的文档的字段的集合,如下所示:

ClassEnrollment

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

和类集合中的类具有以下模式:

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

如果我有一组3000个类,我想在服务器上填充,我可能会做 ClassEnrollment.populate(listOfClassEnrollments, {path: 'class'});

在我的情况下,我不希望大多数类字段,只是名称 . 如果我从db获取所有字段的3000个类的列表,我最终会以网络延迟的形式出现性能损失(这3000个类必须从托管数据库传输到服务器,这可能是50 MB原始数据如果描述很长)

有没有办法通过填充选项填充类名称列表,只是通过填充选项(在幕后我想象它会像投影一样工作,所以db只响应类名和_id而不是所有类信息)?

1 回答

  • 10

    您可以在populate调用中使用 select 选项来执行此操作:

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

相关问题