irpas技术客

Mongodb使用之Aggregation聚合查询:.group()/.project()/.and().previousOperation()等api的使用_

irpas 7517

最近在项目中遇到了Mongodb在聚合查询上的应用,在这里做一个记录。

Spring Data MongoDB 中的聚合框架支持基于以下关键抽象:Aggregation、AggregationDefinition和AggregationResults。项目中目前用到的是Aggregation。需要进一步了解的可以看文末相关链接资料。

直接上代码解释:

//目的:查询出每个班里有多少姓张的男生,并用班级代号分组输出 //.group("class").count().as("count")就是以班级分组,计算数量,数量命名为“count” //project中表示需要输出的字段,.and.as就是“classId”这个字段也要输出,字段名为“cId”,.and("cId").previousOperation就是以“cId”作为分组的“_id”输出) Criteria criteria = Criteria.where("surname").is("张").and("sex").is("M"); Aggregation aggregation = Aggregation.newAggregation(Aggregation.match(criteria), Aggregation.group("class").count().as("count"), Aggregation.project("count","class").and("classId").as("cId").and("cId").previousOperation(); List<BasicDBObject> result = mongoTemplate.aggregate(aggregation,"t_class" BasicDBObject.class).getMappedResults();

关于聚合的相关文档整理在下面:

(1)聚合查询(aggregation) 之 project:Spring data mongodb 聚合查询(aggregation) 之 project - JavaShuoproject :控制返回的字段,例如一个实体类,咱们只须要部分字段java 1 插入数据app ???????mongoTemplate.save(new Role(http://·blogs.com/ontheroad_lee/MongoDBDemo.rar此项目是用Maven创建的,没有使用Maven的https://·/ontheroad_lee/p/3756247.html

(3)Mongodb官方文档Spring Data MongoDB - Reference Documentationhttps://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#mongo.aggregation?(3)关于Spring-Data-Mongodb中的project()的用法,和previousOperation()的用法_冲吧,不要停!-CSDN博客_java mongodb project关于project()方法的使用1,project("name", "netPrice")??? project方法的内容是你要映射的字段,相当于{$project: {sumfavour: 1, userid: 1}}2,project().and("foo").as("bar")??? 如果你想要把一个字段映射成别一个名字的话,就可以用上面的方法,相当于{$project: {https://blog.csdn.net/hotdust/article/details/52605990

(4)MongoDB mongoTemplate查询条作组合例子https://·/blog/huangyongxing310-2342307https://·/blog/huangyongxing310-2342307?欢迎讨论~


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #data #mongodb