【发布时间】:2013-04-15 16:17:56
【问题描述】:
我的应用程序在 MongoDB 中有三个集合 Users、Channels 和 Feeds
用户可以注册频道。所以 Channel 会有一堆注册该 Channel 的用户的参考 ID。
频道有多个供稿。 Feed 文档具有指向频道的参考 ID。
我想根据他订阅的频道检索用户供稿。 我如何在 Mongoose 中实现这一点?
【问题讨论】:
标签: javascript node.js mongodb mongoose
我的应用程序在 MongoDB 中有三个集合 Users、Channels 和 Feeds
用户可以注册频道。所以 Channel 会有一堆注册该 Channel 的用户的参考 ID。
频道有多个供稿。 Feed 文档具有指向频道的参考 ID。
我想根据他订阅的频道检索用户供稿。 我如何在 Mongoose 中实现这一点?
【问题讨论】:
标签: javascript node.js mongodb mongoose
您可以使用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
});
如果这是你想要的,你应该能够反转关系。
【讨论】: