【问题标题】:Getting a reference collections in mongoose在猫鼬中获取参考集合
【发布时间】:2013-04-15 16:17:56
【问题描述】:

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

用户可以注册频道。所以 Channel 会有一堆注册该 Channel 的用户的参考 ID。

频道有多个供稿。 Feed 文档具有指向频道的参考 ID。

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

【问题讨论】:

    标签: javascript node.js mongodb mongoose


    【解决方案1】:

    您可以使用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
    });
    

    如果这是你想要的,你应该能够反转关系。

    【讨论】:

    • 谢谢。我必须这样做才能在频道中获取 Feed,对吗?
    • 是的,您可以在所有需要引用其他集合的模型中这样做。
    猜你喜欢
    • 2022-08-08
    • 2013-01-25
    • 2015-08-08
    • 1970-01-01
    • 2015-03-16
    • 2020-03-28
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    相关资源
    最近更新 更多