`

spring data操作mongodb中的聚合的例子

 
阅读更多
  先来看mongodb中的聚合操作:
有数据如下

{ "_id" : 1, "domainName" : "test1.com", "hosting" : "hostgator.com" }
{ "_id" : 2, "domainName" : "test2.com", "hosting" : "aws.amazon.com"}
{ "_id" : 3, "domainName" : "test3.com", "hosting" : "aws.amazon.com" }
{ "_id" : 4, "domainName" : "test4.com", "hosting" : "hostgator.com" }
{ "_id" : 5, "domainName" : "test5.com", "hosting" : "aws.amazon.com" }
{ "_id" : 6, "domainName" : "test6.com", "hosting" : "cloud.google.com" }
{ "_id" : 7, "domainName" : "test7.com", "hosting" : "aws.amazon.com" }
{ "_id" : 8, "domainName" : "test8.com", "hosting" : "hostgator.com" }
{ "_id" : 9, "domainName" : "test9.com", "hosting" : "cloud.google.com" }
{ "_id" : 10, "domainName" : "test10.com", "hosting" : "godaddy.com" }
...
{ "_id" : 100, "domainName" : "test10.com", "hosting" : "godaddy.com" }


  然后聚合操作为:
db.domain.aggregate(
    {
$match : {_id:{$lt:10}}
    },
    {
$group : {_id : "$hosting", total : { $sum : 1 }}
    },
    {
$sort : {total : -1}
    }
);

  输出:
{ "_id" : "aws.amazon.com", "total" : 4 }
{ "_id" : "hostgator.com", "total" : 3 }
{ "_id" : "cloud.google.com", "total" : 2 }
{ "_id" : "godaddy.com", "total" : 1 }

   使用spring data:
@Repository
public class DomainDaoImpl implements DomainDao {
 
	@Autowired
	MongoTemplate mongoTemplate;
 
	public List<HostingCount> getHostingCount() {
 
		Aggregation agg = newAggregation(
			match(Criteria.where("_id").lt(10)),
			group("hosting").count().as("total"),
			project("total").and("hosting").previousOperation(),
			sort(Sort.Direction.DESC, "total")
 
		);
 
		//Convert the aggregation result into a List
		AggregationResults<HostingCount> groupResults 
			= mongoTemplate.aggregate(agg, Domain.class, HostingCount.class);
		List<HostingCount> result = groupResults.getMappedResults();
 
		return result;
 
	}
分享到:
评论

相关推荐

    Spring Data MongoDB中文文档

    通过 Spring Data MongoDB,开发者可以利用 Spring 的强大功能轻松地进行 NoSQL 数据库的操作。 - **Spring Data MongoDB** 的设计目标是简化开发者的开发流程,通过提供一种统一的方式与不同的数据存储系统进行交互...

    Spring-Data-MongoDB3.2

    Spring Data MongoDB项目是Spring框架的一部分,它提供了一个方便的API来操作MongoDB数据库,使得开发人员可以更高效地进行数据存储和检索。 **1. Spring Data MongoDB简介** Spring Data MongoDB提供了与MongoDB...

    spring-data-mongodb-1.8.0.RELEASE(含源码)

    - **Aggregation**:Spring Data MongoDB 提供了聚合操作的 API,支持 MongoDB 的聚合管道,使得开发者可以在 Java 代码中方便地构建和执行聚合操作。 5. **事件监听** - **MongoEventListener**:Spring Data ...

    spring mvc+spring data+mongodb实例1

    这个实例涵盖了Spring MVC的控制器设计、Spring Data MongoDB的使用,以及MongoDB的基础操作,是学习现代Java Web开发的一个好例子。通过阅读源码并动手实践,开发者可以加深对这三个技术的理解,并提升自己的技能。

    spring-data-mongodb1.2.0

    这个"spring-data-mongodb1.2.0"版本是针对Spring Data MongoDB的1.2.0.RELEASE更新,它包含了对MongoDB数据库操作的全面支持。 Spring Data MongoDB的核心概念包括Repository抽象,它允许开发者以声明式的方式定义...

    spring-data使用mongodbTemplate对MongoDB进行读写操作

    Spring Data MongoDB是一个强大的Java库,它为开发人员提供了一种简单的方式来访问和操作MongoDB数据库。这个库是Spring Data框架的一部分,旨在简化数据访问层的实现,尤其在使用NoSQL数据库如MongoDB时。MongoDB...

    spring data mongodb代码参考

    Spring Data MongoDB提供了聚合操作的支持,可以处理复杂的查询逻辑。聚合框架允许你在Java代码中定义MongoDB的聚合管道,处理数据的分组、过滤、计算等操作。 7. **自定义查询** 当标准的Repository查询方法无法...

    spring-data-mongodb-1.2.0.RELEASE

    Spring Data MongoDB 支持 MongoDB 的聚合框架,允许开发者使用 Java API 实现数据的聚合操作,如管道、匹配、投影等。 八、Spring Data REST 集成 通过启用 Spring Data REST,可以将 MongoDB 存储的资源暴露为 ...

    Spring-data + MongoDb源码

    5. **Aggregation框架**: Spring Data MongoDB提供了对MongoDB聚合框架的支持,让我们能够处理复杂的聚合操作,如分组、管道操作等,这在数据分析和报表生成中非常有用。 6. **Mapping注解**: 除了`@Document`,...

    spring data mongodb 聚合 管道

    总的来说,Spring Data MongoDB的聚合功能使得开发者能够轻松地在Java代码中实现复杂的数据分析操作,与MongoDB的原生聚合框架无缝对接,提升了开发效率。通过理解这些基本的聚合操作,你可以构建出适应各种业务需求...

    spring-data-mongodb api

    Spring Data MongoDB提供了聚合操作的支持,允许开发者构建复杂的聚合管道,用于分析和处理数据。 8. **地理空间支持**: MongoDB支持地理空间索引和查询,Spring Data MongoDB提供了相应的API来创建和执行这些...

    spring data mongodb

    5. **Aggregation**:Spring Data MongoDB支持MongoDB的聚合框架,允许你执行多阶段的数据处理,如分组、过滤、投影等,以进行复杂的数据分析。 6. **MongoTemplate**:对于需要更底层控制的场景,可以使用`Mongo...

    spring-data-mongodb-reference 1.5.4

    - **MongoTemplate 类**:是 Spring Data MongoDB 中的核心类之一,用于执行基本的 CRUD 操作和其他更复杂的操作。 - **实例化 MongoTemplate**:通过构造函数或工厂方法来创建 `MongoTemplate` 实例。 - **...

    spring mongodb 中文文档

    Spring Data MongoDB 支持MongoDB 的聚合操作,允许用户通过Java API 定义复杂的聚合管道。 9. **地理空间查询** MongoDB 支持地理空间索引和查询,Spring Data 提供了相应的API 来处理地理位置数据。 10. **...

    Spring-Mongodb例子

    6. **聚合框架**:Spring Data MongoDB提供了聚合框架,可以方便地执行MongoDB的聚合操作,用于数据分析和报表生成。 7. **地理空间支持**:MongoDB支持地理空间索引和查询,Spring Data MongoDB也提供了相应的API...

    spring mongodb用到的jar包spring-date-mongodb1.4.2.zip

    Spring Data MongoDB不仅限于基本的CRUD操作,还可以支持聚合操作、地理空间查询、索引管理和更多的自定义查询。它还支持MongoDB的其他功能,如GridFS用于存储大型文件。 总之,`spring-data-mongodb1.4.2.zip`包含...

    springMongodb参考文档中文版

    - **SpringData**:利用Spring框架的核心功能如IoC容器、类型转换系统等。 - **核心概念**:虽然不需要深入了解Spring API的具体细节,但对Spring框架背后的原理有一定认识是非常重要的,比如IoC容器的概念。 #### ...

    Java Spring-data for mongodb

    Spring-data-mongodb模块则是专门针对MongoDB的,它将MongoDB的操作与Spring的编程模型完美结合,使得开发者可以充分利用Spring的优势来操作MongoDB。 2. **MongoDB简介** MongoDB是一款基于分布式文件存储的开源...

    spring db & mongodb

    在Java开发中,Spring框架提供了与多种数据库(包括MongoDB)集成的工具,如Spring Data MongoDB,使得操作MongoDB变得更加便捷。 Spring Data MongoDB是Spring Data项目的一部分,它为MongoDB提供了一套一致的编程...

Global site tag (gtag.js) - Google Analytics