在mongoose中获取参考集合

Fiz*_*han 2 javascript mongoose mongodb node.js

我的应用程序在MongoDB中有三个集合Users,Channels和Feeds

用户可以注册频道.因此,频道将拥有已注册该频道的用户的一堆参考ID.

频道有多个Feed.Feed文档具有引用的引用ID.

我想根据他订阅的频道检索用户Feed.我如何在Mongoose实现这一目标?

Nil*_*lsH 5

您可以使用ObjectId模式类型来引用其他集合中的文档.然后,您可以populate在查询父文档时使用这些文档填充.例如:

var UserSchema = new Schema({
    // Some fields
    channels: [{type: ObjectId, ref: 'Channel'}]
});
Run Code Online (Sandbox Code Playgroud)

然后,当您获取用户时,您可以这样使用populate:

User.findById(user._id).populate('channels').exec(function(err, userWithChannels) {
    var channels = userWithChannels.channels;
    // Do your work
});
Run Code Online (Sandbox Code Playgroud)

如果你想要的话,你应该能够扭转这种关系.