【发布时间】:2016-12-06 15:44:14
【问题描述】:
我有以下示例数据:
{
"name": "Bob",
"mi": "K",
"martialStatus": "M",
"age": 30,
"city": "Paris",
"job": "Engineer"
}
{
"name": "Chad",
"mi": "M",
"martialStatus": "W",
"age": 31,
"city": "Paris",
"job": "Doctor"
}
{
"name": "Mel",
"mi": "A",
"martialStatus": "D",
"age": 31,
"city": "London",
"job": "Doctor"
}
{
"name": "Frank",
"mi": "F",
"martialStatus": "S",
"age": 30,
"city": "London",
"job": "Engineer"
}
我正在尝试编写一个以以下格式返回结果的 mongo 查询: “人数”:4, “工作清单”:{ “工作”:“医生”, “年龄列表”:[ { “年龄”:31, “城市列表”:[ { “城市”:“伦敦”, “人们”: [ { “名称”:“梅尔”, “军事状态”:“D” } ] }, { “城市”:“巴黎”, “人们”: [ { “名称”:“乍得”, “军事状态”:“W” } ] }, { “城市”:“柏林”, ... ... ] } ] }
要尝试前两个级别(jobsList 和 ageList),我正在尝试以下
db.colName.aggregate([
{
$group: {
_id: { job: "$job" },
jobsList: {
$push: {
age: "$age",
city: "$city",
name: "$name",
martialStatus: "$martialStatus"
}
}
}
},
{
$group: {
_id: { age: "$age" },
ageList: {
$push: {
city: "$city",
name: "$name",
martialStatus: "$martialStatus"
}
}
}
}
]);
尽管第一个分组/推送部分有效,但上述内容不起作用...关于如何获得该输出格式/分组的任何提示?
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework