我的mongoDB数据库中有2个收藏集,“帖子”和“喜欢”。模式如下所示(简化):
// PostSchema
{
_id: Number,
user_id: Number,
title: String,
text: String,
timestamp: Date,
likes: Number
}
// LikeSchema
{
_id: Number,
user_id: Number,
post_id: Number,
timestamp: Date
}
当某人喜欢某个帖子时,我会在Likes集合中创建一个新文档,然后更新相应的Post文档中的“ likes”值。当有人不喜欢时,我会删除“喜欢”文档,并减少相应“发布”文档中的“喜欢”值。
我现在要查询所有按时间戳(降序排列)排序的帖子,并且想显示用户是否喜欢该帖子。因此,我想获取所有帖子信息+一个指示用户是否喜欢帖子的布尔值(用户ID +帖子ID存在“喜欢”文档)。
在SQL中,我会通过子查询或联接来执行类似的操作,但是我不知道如何在mongoDB / mongoose中执行此操作。对于每个帖子,最好的解决方案是什么?