我有两个猫鼬方案,一个用于用户,另一个用于帖子。
一个用户可以喜欢许多帖子。
最后,我想在客户端显示用户喜欢的所有帖子,其中一部分我可以使用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] }})