【发布时间】:2016-12-21 06:33:18
【问题描述】:
我正在使用 Mongoose 的聚合(MongoDB v3.2)。数据库中有两个项目factory1 和factory2。每个工厂都有一个字段products,它是一个数组。
我想选择所有有产品code1=='aa' & code2=='BB'的工厂
// factory1.products
[{
code1: 'aa',
code2: 'AA'
}, {
code1: 'bb',
code2: 'BB'
}]
// factory2.products
[{
code1: 'aa'
code2: 'BB'
}]
这就是我现在的做法:
Factory
.aggregate([
{ $unwind: '$products' }, // Ensure get factory2 only when use $match. Without $unwind, will get both factory1 and factory2
{ $match: {
'products.code1': 'aa',
'products.code2': 'BB'
}}
]);
有没有不使用$unwind的选择方法?因为稍后我想再次获得完整的项目。谢谢
【问题讨论】:
标签: node.js mongodb mongoose aggregation-framework