有没有与mongoose populate()方法相反的方法?(Mongoose,node.js,express)



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

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

最后,我想在客户端显示用户喜欢的所有帖子,其中一部分我可以使用populate((方法来完成,另一部分用户不喜欢的帖子,而不创建喜欢的帖子的副本。

有没有unpopulation((方法可以用来只获取未链接的帖子?如果没有,最好的方法是什么?

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'
}
],
}

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

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

最新更新