Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js mongoDB/mongoose加入两个集合_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js mongoDB/mongoose加入两个集合

Node.js mongoDB/mongoose加入两个集合,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我的mongoDB数据库中有两个集合,“posts”和“likes”。模式如下(简化): 当有人喜欢一篇文章时,我会在likes集合中创建一个新文档,并更新相应的post文档中的“likes”值。当有人不喜欢时,我会删除Like文档,并减少相应Post文档中的“likes”值 现在我想查询所有帖子,按时间戳排序(降序),并显示用户是否喜欢某篇帖子。因此,我想获取所有帖子信息+一个布尔值,指示用户是否喜欢帖子(用户ID+帖子ID存在一个相似的文档) 在SQL中,我会使用子查询或联接执行类似的操作,

我的mongoDB数据库中有两个集合,“posts”和“likes”。模式如下(简化):

当有人喜欢一篇文章时,我会在likes集合中创建一个新文档,并更新相应的post文档中的“likes”值。当有人不喜欢时,我会删除Like文档,并减少相应Post文档中的“likes”值

现在我想查询所有帖子,按时间戳排序(降序),并显示用户是否喜欢某篇帖子。因此,我想获取所有帖子信息+一个布尔值,指示用户是否喜欢帖子(用户ID+帖子ID存在一个相似的文档)


在SQL中,我会使用子查询或联接执行类似的操作,但我不知道如何在mongoDB/mongoose中执行此操作。对于每篇文章,什么是最好的解决方案?

这是否回答了您的问题@是的,
$lookup
是我需要的。非常感谢。
// 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
}