2013-04-15 83 views
2

我的应用程序有三个集合MongoDB中的用户,通道和源在猫鼬中获取参考集合

用户可以注册通道。所以Channel将拥有已注册该频道的用户的参考ID。

频道有多个Feed。 Feed文件具有参考ID到频道。

我想根据他订阅的频道检索用户订阅源。 我如何在Mongoose中实现这一点?

回答

5

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

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

然后,当你获取一个用户,你可以使用populate这样的:

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

你应该能够扭转的关系,如果这就是你想要的东西来代替。

+0

谢谢。我必须这样做才能在渠道中获取Feed? –

+0

是的,你可以在所有需要引用其他集合的模型中这样做。 – NilsH