我有這個回傳機構資訊陣列的函式:
const getInstitutionsInfo = async () => {
const sum_current_students = {
$addFields: { number_of_current_students: { $size: "$current_students" } },
};
const sort_by_largest_number_of_current_students = {
$sort: {
number_of_current_students: -1,
},
};
const pipeline = [
sum_current_students,
sort_by_largest_number_of_current_students,
];
const response = await Institution.aggregate(pipeline);
return response;
};
結果是一個陣列:
[Institution_1_data, Institution_2_data ... ]
其中每個Institution_X_data都是一個物件。
我想最后在管道中添加另一個階段,使最終結果如下:
{
result: [Institution_1_data, Institution_2_data ... ]
}
我嘗試了$reduce 的不同組合,但我無法達到那個結果。
uj5u.com熱心網友回復:
添加$group階段
{
"$group": {
"_id": null,
"result":{
"$push" : "$$ROOT"
}
}
}
蒙戈游樂場| 系統變數
const getInstitutionsInfo = async () => {
const sum_current_students = {
$addFields: { number_of_current_students: { $size: "$current_students" } },
};
const sort_by_largest_number_of_current_students = {
$sort: {
number_of_current_students: -1,
},
};
const group_students = {
$group: {
_id: null,
result: {$push: "$$ROOT"}
}
};
const pipeline = [
sum_current_students,
sort_by_largest_number_of_current_students,
group_students
];
return await Institution.aggregate(pipeline);
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/385502.html
