如何用mongoose实现分组计算的功能?
发布于 11 年前 作者 jbasttdi 10319 次预览 最后一次回复是 11 年前 来自 问答
我现用nodejs+mongodb+mongoose. 我有个数据结构MyModel
{ depid:String, userid:String, username:String } 测试数据: {depid:‘a’,userid:‘1’,username:‘张1’} ,{depid:‘b’,userid:‘2’,username:‘张2’} ,{depid:‘a’,userid:‘3’,username:‘张3’} ,{depid:‘c’,userid:‘4’,username:‘张4’} ,{depid:‘c’,userid:‘5’,username:‘张5’} ,{depid:‘d’,userid:‘6’,username:‘张6’} 我想传入一个depid=‘a,c,b’ 值,根据depid获取分组数量,想要的结果: { depid:‘a’,count:2 ,depid:‘c’:count:2 ,depid:‘b’,count:1 } 请问该如何实现呢? 谢谢!
7 回复
aggregate
大不了 mapreduce,但不要指望速度
具体怎么做,能讲讲吗。
用aggregate有一个问题,用$match无法匹配ObjectId
@jbasttdi .aggregate({$match:{’_id’:mongoose.Types.ObjectId(Id)}})
谢谢了,是的,是要转换的。
总听到有人说aggredate效率不高,但不知有没有依据呢。 如果小数据,用这种方式也可以: