【发布时间】:2020-06-11 09:57:19
【问题描述】:
我需要汇总“姓名”的“姓氏”和“职业”以获得结果:
{
name: 'John',
occupations: ['software engineer', 'qa']
lastNames: ['Smith', 'Red', 'Doe']
}
输入
name: 'John'
mongo 中存在的文档:
{name: 'John', lastName: 'Smith', occupation: 'software engineer'}
{name: 'Steve', lastName: 'Smith', occupation: 'senior software engineer'}
{name: 'John', lastName: 'Doe', occupation: 'qa'}
{name: 'Steve', lastName: 'Doe', occupation: 'manager'}
{name: 'John', lastName: 'Red', occupation: 'software engineer'}
我从这个聚合查询开始:
Employees.aggregate([
{ $match: { name: name } },
{
$unwind: {
path: '$lastName',
},
},
{
$unwind: {
path: '$occupation',
},
},
{ $group: { _id: '$name' } },
]);
但这会返回一个空数组,所以我有点卡住了,因为我以前从未做过聚合。
有没有办法产生这个所需的结果?
【问题讨论】:
-
您的文档不包含任何数组,因此
$unwind没用
标签: mongodb mongoose mongodb-query aggregation-framework aggregate