`
Javahuhui
  • 浏览: 78402 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

spring boot 集成mongodb

阅读更多

1.pom.xml添加依赖包

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

 

2.application.yml文件添加加配置

spring:
  data:
    mongodb:
      uri: mongodb://localhost/test

 若有副本集,则可以

mongodb://user:secret@mongo1.example.com:12345,mongo2.example.com:23456/test

 

3.通过mongoTemplate操作mongodb

@RunWith(SpringRunner.class)
@SpringBootTest(classes = { Application.class })
@ActiveProfiles(value = "dev")
public class MyTest {

	@Resource
	private MongoTemplate mongoTemplate;

	@Test
	public void test1() {
		try {
			LogInfo info = new LogInfo();
                        //set data...
			mongoTemplate.save(info, "log");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	@Test
	public void testFindAll() {
		List<LogInfo> list = mongoTemplate.findAll(LogInfo.class, "log");
		for (LogInfo info : list) {// 查出所有结果,包括不是LogInfo对象的数据
			System.out.println(info.getTableName());
			System.out.println(info.getColumnInfoList().size());
		}
	}

	@Test
	public void testFindBy() {
		Query query = Query.query(Criteria.where("name").is("user").and("recordId").is("1001"));
		List<LogInfo> list = mongoTemplate.find(query, LogInfo.class, "log");
		for (LogInfo info : list) {
			System.out.println(info.getTableName());
			for (ColumnInfo col : info.getColumnInfoList()) {
				System.out.println(col.getName() + ":" + col.getValue());
			}
		}
	}

	@Test
	public void testFindPage() {// 小数据量分页,可跳页
		Query query = Query.query(Criteria.where("name").is("user"));
		Pageable pageable = new PageRequest(2, 3);
		query.with(pageable).with(new Sort(Direction.DESC, "_id"));
		Long count = mongoTemplate.count(query, "log");
		System.out.println("count:" + count);
		List<LogInfo> list = mongoTemplate.find(query, LogInfo.class, "log");
		for (LogInfo info : list) {
			System.out.println(info.getTableName());
			for (ColumnInfo col : info.getColumnInfoList()) {
				System.out.println(col.getName() + ":" + col.getValue());
			}
		}
	}

	@Test
	public void testFindBigPage() {// 大数据量分页,不可跳页
		String lastId = "xxx";
		BasicDBObject query = new BasicDBObject();
		query.put("name", "user");
                int count = mongoTemplate.getCollection("log").find(query).size();
		query.put("_id", new BasicDBObject("$lt", new ObjectId(lastId)));
		DBCursor cursor = mongoTemplate.getCollection("log").find(query).sort(new BasicDBObject("_id", -1))
				.limit(3);
		while (cursor.hasNext()) {// 大数据量对象转换,也推荐用这方式
			DBObject obj = cursor.next();
			ObjectId id = (ObjectId) obj.get("_id");
			System.out.println(id.toString());
			BasicDBList cols = (BasicDBList) obj.get("columnInfoList");
			for (Object col : cols) {
				DBObject o = (DBObject) col;
				System.out.println(o.get("name") + ":" + o.get("value"));
			}
		}
	}

}

 

@Document
public class LogInfo {
	private String id;
	private String name;
	private String recordId;
	private List<ColumnInfo> columnInfoList;
}

@Document
public class ColumnInfo {
	private String name;
	private String value;
}

 

 

分享到:
评论

相关推荐

    spring-boot-mongodb项目下载

    spring boot 集成 mongodb

    Spring Boot使用MongoDB详解

    本文将详细介绍如何在Spring Boot项目中集成MongoDB数据库,包括其原理、使用流程、步骤以及完整的代码示例。通过本文,读者将能够了解Spring Boot与MongoDB的集成方式,掌握在Spring Boot应用程序中操作MongoDB...

    Spring Boot集成mongodb数据库过程解析

    主要介绍了Spring Boot集成mongodb数据库过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    springboot整合mongodb

    mongodb版本号3.2,需手动开启http服务,启动时使用命令 ./mongod --httpinterface 新增 修改 删除 查询 排序 分页 可查看: https://blog.csdn.net/m0_37132783/article/details/96992439

    springboot整合mongodb changestream代码

    1、java客户端使用mongodb changestream代码 2、springboot整合mongodb changestream代码

    Spring Boot无缝集成MongoDB

    主要介绍了Spring Boot无缝集成MongoDB的相关知识,本文涉及到MongoDB的概念和nosql的应用场景,需要的朋友可以参考下

    spring boot 实践学习案例,与其它组件整合

    spring boot 实践学习案例,与其它组件结合如 mybatis、jpa、dubbo、redis、mongodb、memcached、kafka、rabbitmq、activemq、elasticsearch、security、shiro等 #### Spring Boot 版本 - 2.0.3.RELEASE #### 模块...

    spring-boot2.0全新教程实例20例.zip

    - [spring-boot-redis](https://github.com/ityouknow/spring-boot-examples/tree/master/spring-boot-redis):Spring Boot 集成 Redis 示例 - [spring-boot-jpa]...

    Sprint Boot 集成MongoDB的操作方法

    最近接手一个Springboot项目,需要在原项目上增加一些需求,用到了mongodb。下面通过本文给大家分享Sprint Boot 集成MongoDB的操作方法,需要的朋友参考下吧

    spring boot2

    spring boot2, 讲解spring boot2集成mongoDb, Rdis, mybatis等技术.

    springboot+mongoDB

    springboot集成mongoDB

    Sping boot MongoDB 配置多数据源

    spring boot mongodb 配置多数据源,正式环境中截取出来的代码,亲测有效

    angular+springmvc+mongodb

    集成了 angular springmvc mongodb,做的单页面应用

    spring boot集成demo大全.zip

    `spring boot demo` 是一个用来深度学习并实战 `spring boot` 的项目,目前总共包含 **`63`** 个集成demo,已经完成 **`51`** 个。 该项目已成功集成 actuator(`监控`)、admin(`可视化监控`)、logback(`日志`)、aop...

    Spring Boot集成Shiro并利用MongoDB做Session存储的方法详解

    主要给大家介绍了关于Spring Boot集成Shiro并利用MongoDB做Session存储的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友下面来一起看看吧。

    springMongodb参考文档中文版

    Spring Boot的依赖管理 6.2。Spring框架 7.使用Spring Data Repositories 7.1。核心概念 7.2。查询方法 7.3。定义存储库接口 7.3.1。微调储存库定义 7.3.2。空处理存储库方法 7.3.3。将存储库与多个Spring Data模块...

    spring-boot-examples-master.zip

    spring-boot-examples-master示例程序,与各种框架集成,包括: dockercompose-springboot-mysql-nginx spring-boot-actuator spring-boot-banner spring-boot-docker spring-boot-elasticsearch spring-boot-...

    spring-boot-mongodb:测试mongodb

    Spring Boot Framework集成了3rd工具 在命令模式下运行,需要安装gradle 4.7以上版本 插入测试数据test / java / com / sb / OrderMain.java通过schema(local)在文件spring.data.mongodb.database = local中定义的...

    Spring + Spring Boot + MyBatis + MongoDB的整合教程

    主要给大家介绍了关于Spring + Spring Boot + MyBatis + MongoDB的整合教程,文中通过图文以及示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。

    spring-boot-examples:关于通过示例学习Spring Boot。 Spring Boot教程,技术栈示例代码,快速简单上手教程

    :Spring Boot使用commandLineRunner实现项目启动时资源初始化示例 :Spring Boot使用thymeleaf实现布局,验参,增删改改查示例 :Spring Boot使用spymemcached集成memcache示例 :Spring Boot webflux示例 :Sp

Global site tag (gtag.js) - Google Analytics