猫鼬populate()方法有相反的东西吗? (猫鼬,node.js,表达)

时间:2018-12-18 16:23:22

标签: node.js express mongoose routes

我有两种猫鼬方案,一种用于用户,一种用于帖子。

一个用户可以喜欢许多帖子。

最后,我想在客户端中展示用户喜欢的所有帖子,我可以使用populate()方法来完成,而在另一部分中,用户不喜欢而无需创建重复的帖子喜欢的帖子中。

是否可以使用unpopulate()方法仅获取不同的帖子?如果没有,什么是最好的方法?

userScheme = 
   { 
    // some other fields…

    post: {
            type: Schema.Types.ObjectId,
            ref: 'Post'
        }
  }


postScheme = 
   { 
     // some other fields…

     user: {
            type: Schema.Types.ObjectId,
            ref: 'User'
        },
        likes: [
                {
                    type: Schema.Types.ObjectId,
                    ref: 'User'
                }
        ],

}

1 个答案:

答案 0 :(得分:0)

您可以查询likes数组中没有该特定用户的所有帖子,即该用户还不喜欢该用户。 Reference

Post.find({ likes: { $nin: [user._id] }})