Mongoose:对返回的文档运行第二个查询

时间:2011-10-27 16:41:00

标签: node.js mongodb mongoose nosql

问题:

我有一个'Group'系列。每个小组都有一个嵌入的“会员”文件。我需要通过'MemberID'提取特定成员,并从'用户'集合中获取所有详细信息。我想使用'.populate()'方法执行此操作,但只需要填充该单个成员的记录而不是所有成员记录。

所以我的查询如下:

DB.model('groups')
.findById(groupID)
.populate('members._user')
.run(function(err, group){

    // then loop over every member and return the one that matches 
    // the member id we require

});

这似乎是一种非常低效的处理方式,因为我只需要组中一个成员的用户详细信息!我只有memberID而不是userID所以这就是我要去成员集合的原因。

如何从嵌入的“成员”文档中提取单个成员并填充它?

1 个答案:

答案 0 :(得分:1)

populate函数有3个参数:pathfieldsconditions。当通过单独调用fields填充所引用的文档时,将应用conditionsmodel.find(...)。尝试传递populate一个有效的mongodb条件,该条件只会返回您感兴趣的成员。