我看過很多代碼示例,但是我從來沒有找到想要的東西。其實我可以做一個循環,但我真的更喜歡使用mongo引擎來獲得我想要的結果。它更瘋狂,我開始花很多時間在它上面,看起來很基本...在mongoDB中的聚合
我正在使用Express和MongoDB運行nodeJS。
基本上我有一個集合中包含的一些信息:
{
"aqi": 149,
"area": "AL",
"position_name": "montgomery",
"station_code": "1793A",
},
{
"aqi": 162,
"area": "AL",
"position_name": "huntsville",
"station_code": "1790A",
},
{
"aqi": 73,
"area": "TX",
"position_name": "dallas",
"station_code": "1792A",
}
我想獲得一個結果集像
{
"_id": "AL",
"positions": [
{
"position_name": "montgomery",
"station_code": "1793A"
},
{
"position_name": "huntsville"
"station_code": "1790A"
}
]
},
{
"_id": "TX",
"positions": [
{
"position_name": "dallas",
"station_code": "1793A"
}
]
}
到目前爲止,我真的覺得我沒查遍計算器,並嘗試幾個解決方案,同時,如果我錯了,並有類似問題的問題已經存在,請請讓我知道,我提前道歉。
我當前的代碼:
db.collection('cities', function(err, collection) {
collection.aggregate([{$group : {_id : "$area"}}], function(err, items) {
res.send(items);
});
});
我想混合匹配(區)和組,但沒有成功,直到如今。
謝謝您的幫助。
編輯:
我沒有忘記集團運營商做到這一點。在這裏,新的代碼:
db.collection('cities', function(err, collection) {
collection.aggregate([{$group : {_id: "$area", positions: {$push : "$position_name"}}}], function(err, items) {
res.send(items);
});
});
它實際上推......我只檢查有關管道運營商,忘了集團經營...感謝;) 我編輯我的問題的答覆。 – Atheryl