我现在面临一个问题,无法找到解决方案。 我有一个集合在每个文档的数组中的子文档,我想检索每个子文档的文档。
举一个例子,解释起来会更简单。假设我有一个集合的“架构”:
{
a: String,
b: [String]
}
其中a和b都是必需的。 该集合的文档如下所示:
{
a : 'hey',
b: ['me', 'you']
}
我想找到一种方法来制作一个不会按原样返回此文档的mongoose查询,但是这两个文档:
[{
a: 'hey',
b: 'me'
},
{
a: 'hey',
b: 'you'
}]
这可能吗?
提前致谢。
P.S。 :我知道一旦我使用简单的JS函数检索列表就可以执行此操作,但我迫不及待地想要检索完整列表以开始使用它。
答案 0 :(得分:2)
这正是$unwind
聚合运算符的作用:
MyModel.aggregate({$unwind: '$b'}, function(err, result) { ... });
results
获取一个类似于:
[ { _id: 524d5f6e1576f8a0f35fca8e, a: 'hey', b: 'me' },
{ _id: 524d5f6e1576f8a0f35fca8e, a: 'hey', b: 'you' } ]