java实现mongodb Aggregation

prettyboy1125 2015-12-08 06:26:03
要想实现的功能很简单,但我卡在最后一步了
先看最终我想实现的效果:


订单数据存在order 表中,里面放了dirverId
我现在只能按driverId 分组查出每个id的订单数量,但是没法知道是哪个id的。

部分java代码


public void queryDriverRanking(long start, long end){
Aggregation aggregation = Aggregation.newAggregation(
Aggregation.group(StringConst.driverId).count().as("orderAmt"),
Aggregation.sort(new Sort(Sort.Direction.DESC,"orderAmt"))//排序,可以忽略
);
AggregationResults<DriverRanking> ar = mongoTemplate.aggregate(aggregation,"order", DriverRanking.class);

List<DriverRanking> list = ar.getMappedResults();//如果成功该List就是我想要的结果
for (DriverRanking ranking : list) {
System.out.println(ranking);
}
}

public class DriverRanking {
String driverId;
Integer orderAmt;//订单数量
private String name;

public String getName() {
name = BaseDomain.userDao.findById(driverId).getName();//通过id去数据库查询,不知道能不能实现
return name;
}
public void setName(String name) {
this.name = name;
}

@Override
public String toString() {
return "DriverRanking [driverId=" + driverId + ", orderAmt="
+ orderAmt + ", name=" + name + "]";
}

}
...全文
510 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
prettyboy1125 2015-12-08
  • 打赏
  • 举报
回复
现在的问题是到了list那一步除了oderAmt有数据,driverId是null,我想要查出来的driverId 赋给他

10,606

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 其他
社区管理员
  • 其他
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧