如何在同一结果中显示两个单独的子文档?

时间:2013-08-22 21:03:30

标签: node.js mongodb mongoose

有没有办法在结果中加入2个子文档?

示例:

我有出版商,出版物有出售的包裹和书籍。 我想要的只是展示他们想要出售的包裹。

以下是我的发布商文档:

{
   _id: ObjectId('1')
   name: "Publisher name 1"
   ...
   packages : [{
      _id: ObjectId('p111'),
      books: [2222, 3333] //Books IDs
   },{
      _id: ObjectId('p222'),
      books: [4444, 5555] //Books IDs
   }],
   books: [{
      _id: ObjectId('2222'),
      name: "Book 2"
   },{
      _id: ObjectId('3333'),
      name: "Book 3"
   }, 
   ...
   ]
}

查询: Publisher.find({_id: 1}, {packages: 1}...);

我想要的是这个结果:

{
  _id: ObjectId('1')
   name: "Publisher name 1"
   ...
   packages : [{
      _id: ObjectId('p111'),
      books: [{
      _id: ObjectId('2222'),
      name: "Book 2"
   }, {
      _id: ObjectId('3333'),
      name: "Book 3"
   }] //Books IDs
   }
}

1 个答案:

答案 0 :(得分:0)

看一下website中的以下代码,我认为它可以解决您的目的。您可以自定义问题的解决方案。

Person
.find({ occupation: /host/ })
.where('name.last').equals('Ghost')
.where('age').gt(17).lt(66)
.where('likes').in(['vaporizing', 'talking'])
.limit(10)
.sort('-occupation')
.select('name occupation')
.exec(callback);