按其子文档分割文档
我现在面临一个问题,无法find解决办法。 我有一个在每个文档中的数组中的子文档的集合,我想检索每个子文档的文档。
举个例子,解释起来会比较简单。 假设我有一个集合的“模式”:
{ a: String, b: [String] }
a和b都是必需的。 这个集合的文档看起来像:
{ a : 'hey', b: ['me', 'you'] }
我想find一种方法来做一个不会返回这个文件的mongoose查询,但是这两个文件:
[{ a: 'hey', b: 'me' }, { a: 'hey', b: 'you' }]
那可能吗 ?
提前致谢。
PS:我知道一旦我用一个简单的JS函数检索了列表,我就可以做到这一点,但我迫不及待地想要检索完整的列表来开始使用它。
这正是$unwind
聚合运算符所做的:
MyModel.aggregate({$unwind: '$b'}, function(err, result) { ... });
results
得到一个如下所示的数组:
[ { _id: 524d5f6e1576f8a0f35fca8e, a: 'hey', b: 'me' }, { _id: 524d5f6e1576f8a0f35fca8e, a: 'hey', b: 'you' } ]