let groups = {}
array.forEach(function (o) {
var group = JSON.stringify(f(o))
groups[group] = groups[group] || []
groups[group].push(o)
})
return Object.keys(groups).map(function (group) {
return groups[group]
})
}
const arrayGroupBy = (list, groupId) =>{
let sorted = groupBy(list, function (item) {
return [item[groupId]]
})
return sorted
}
arrayGroupBy(数组, '字段名称')
mongodb中实现sql中德group by可以采用聚合函数aggregate参考代码:
/**
* select avg(pop) avgCitypop from zipsController group by state
*/
exports.avgGroupByStateCityDemo2Async = function (opts) {
var results = {error_code: -1, error_msg: "error"}
var pipeline =[
{
$group: {
_id: "$state",
avgCitypop: {$avg: "$pop"}
}
}
]
return opts.dbs.csdb.collection("zipsController").aggregateAsync(pipeline)
分组使用select数学成绩fromgradegroupby数学成绩。select姓名"学生姓名",(数学成绩+英语成绩+计算机成绩)/3“平均成绩”fromgradewhere数学成绩,60。