【发布时间】:2015-11-18 06:14:53
【问题描述】:
我有这个模型数据:
var orders = [{
_id: 'order_1'
users: [{
name: 'Bob'
_id: 'user_1',
company: 'company_1'
}, {
name: 'John'
_id: 'user_3',
company: 'company_2'
}]
}, {
_id: 'order_2'
users: [{
name: 'Mary'
_id: 'user_2',
company: 'company_1'
}]}];
使用我想最终得到的聚合框架:
[{
_id: 'user_1',
order: 'order_1',
company: 'company_1'
}, {
_id: 'user_2',
order: 'order_2',
company: 'company_1'
}];
代码:
return Order.aggregateAsync([{
$unwind: '$users'
}, {
$match: {
'users.company': 'company_1'
}
}, {
$project: {
id: '$users._id',
order: '$_id',
company: '$users.company',
}
}, {
$group: {
_id: "$users"
}
}]);
但有些地方不太对劲。一旦我添加了 $group 参数,我就会丢失结果中的所有数据,最后只剩下数组中的用户 ID。
[
{ _id: 'user_1' },
{ _id: 'user_2' }
]
如何将我预测的所有数据返回到结果中?
【问题讨论】:
标签: mongodb aggregation-framework