如何在MongoDB中包含文档作为子文档?

时间:2016-05-31 04:53:16

标签: node.js mongodb mongoose

我有一个基本的用户集合,包含如下文档:

{
   user: 3949fj9fn9rjhfne93,
   name: "Jerry",
   country: 'au',
   friends: ['20fn39r4hf93', 'g9en3irhr934', '4i5henifuw92']
}

这些朋友中的每一个也都有相同的文档,还有大量国家可以通过国家/地区代码查询。

{
   code: 'AU',
   name: 'Australia'
}, {
   code: 'NZ',
   name: 'New Zealand'
}

我的问题是,如何在结果中包含每个数组项的完整文档,如下所示:

{
   user: 3949fj9fn9rjhfne93,
   name: "Jerry",
   country: {
      code: 'AU',
      name: 'Australia'
   },
   friends: [{
       user: 20fn39r4hf93,
       name: "Bob",
       friends: ['2049429fr', 'djwij393i4']
   }, {
       user: g9en3irhr934,
       name: "Foo",
       friends: []
   }, {
       user: 4i5henifuw92,
       name: "Bar",
       friends: ['2049429fr']
   }]
}

我在我的应用程序中使用Mongoose,我知道这可以通过使用简单的for循环并将结果推送到用户对象然后在res.json(user)的节点中返回来完成,如果用户有数百(甚至数千)的朋友怎么办?请求将是巨大的。我还需要在我的API中的多个位置执行此操作。

有没有更有效的方法来实现这一目标?

0 个答案:

没有答案