【问题标题】:Many to many relationships MongoDB mongoose多对多关系 MongoDB mongoose
【发布时间】:2014-08-15 03:13:46
【问题描述】:

我有一个用户架构,用户可以成为朋友。

我有一个友谊模式:

var friendshipSchema = mongoose.Schema({
    from : { type: Schema.Types.ObjectId, ref: 'User' },
    to : { type: Schema.Types.ObjectId, ref: 'User' }
});

现在,我想从用户foo 那里获得所有朋友:

Friendship
.find({
    $or : [
        { from : foo._id },
        { to : foo._id }
    ]
})

问题是:我想填充来自foo 的所有朋友,但不是foo 本人(因为对于X 个朋友,我会填充X 个foos)。

我怎样才能做到这一点?

谢谢!

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    这就是我所做的:

    Friendship
    .find({
        $or : [
            { from : user._id },
            { to : user._id }
        ]
    })
    .populate({
        path: 'from',
        match: { _id: { $ne: user._id }},
        select: '-token'
    },{
        path: 'to',
        match: { _id: { $ne: user._id }},
        select: '-token'
    })
    .lean()
    .exec(function(err, retData)
    {
             // Do something here...
    });
    

    【讨论】:

      猜你喜欢
      • 2014-01-21
      • 2020-06-12
      • 2015-10-25
      • 2014-09-25
      • 2019-08-11
      • 2015-04-07
      • 2013-01-02
      • 2018-11-03
      • 1970-01-01
      相关资源
      最近更新 更多