按文档拆分文档

时间:2013-10-03 10:45:11

标签: node.js mongodb mongoose

我现在面临一个问题,无法找到解决方案。 我有一个集合在每个文档的数组中的子文档,我想检索每个子文档的文档。

举一个例子,解释起来会更简单。假设我有一个集合的“架构”:

{
    a: String,
    b: [String]
}

其中a和b都是必需的。 该集合的文档如下所示:

{
    a : 'hey',
    b: ['me', 'you']
}

我想找到一种方法来制作一个不会按原样返回此文档的mongoose查询,但是这两个文档:

[{
    a: 'hey',
    b: 'me'
 },
 {
     a: 'hey',
     b: 'you'
 }]

这可能吗?

提前致谢。

P.S。 :我知道一旦我使用简单的JS函数检索列表就可以执行此操作,但我迫不及待地想要检索完整列表以开始使用它。

1 个答案:

答案 0 :(得分:2)

这正是$unwind聚合运算符的作用:

MyModel.aggregate({$unwind: '$b'}, function(err, result) { ... });

results获取一个类似于:

的数组
[ { _id: 524d5f6e1576f8a0f35fca8e, a: 'hey', b: 'me' },
  { _id: 524d5f6e1576f8a0f35fca8e, a: 'hey', b: 'you' } ]