mongodb:如何从2个以上的集合中获取文档

时间:2017-11-28 11:47:40

标签: node.js mongodb mongoose

我在mongodb有2个收藏

 collection1 **user's**

_id:ObjectId("5a1bedd219001b168e33835e")
password:$2a$05$H5wz7kCm/UIGYpvGWruV0eRd.Blgndd4i8pzZcyW7uCG3U4kUzZM2
socket_id:ljlZzY73BZjnwjZBAAAD
nickName:des
email:desmond.dd31@gmail.com
__v:0

collection2 **messages**

_id:ObjectId("5a1bedd219001b168e33835e")
userId:5a1bedd219001b168e33835e
message: test
time: 2017-11-28 16:57:44.000
__v:0

我希望从" messages集合中获取每个用户的消息",messages集合中的userId是用户集合中用户的对象ID。

从两个以上的集合中获取文档的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

您必须执行查找查询,它仅适用于MongoDB> 3.2+。更多信息here

答案 1 :(得分:0)

如果mongodb上有3.4或更高版本,请使用查找

  $lookup:
 {
   from: <collection to join>,
   localField: <field from the input documents>,
   foreignField: <field from the documents of the "from" collection>,
   as: <output array field>
 }

有关详情,请访问$Lookup