SpringBoot + MongoDB 5分钟快速集成:从0到1实操指南
目录MongoDB快速集成常用APIMongoDBMongoDB 是一个基于分布式文件存储的文档型数据库属于 NoSQL 数据库中最接近关系型数据库的产品旨在为 Web 应用提供高性能、高可用和可扩展的数据存储解决方案 。MongoDB以灵活的无模式文档模型适配快速迭代的业务需求通过分片与副本集实现海量数据的高可用存储与高性能读写是处理非结构化、半结构化数据的理想选择。它广泛应用于社交、游戏、物联网等场景尤其擅长支撑数据量大、读写频繁、事务要求不高的业务比如存储用户动态、游戏角色信息、设备日志等还可借助地理位置索引实现LBS服务。快速集成pom!-- Spring Boot Starter Data MongoDB -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-data-mongodb/artifactId /dependencyapplication.yml配置spring: data: mongodb: uri: mongodb://username:passwordlocalhost:27017/databaseName?replicaSetmgset-youmgset创建配置类可选虽然Spring Boot的自动配置通常足以满足大多数需求但有时你可能需要自定义配置。你可以创建一个配置类来配置MongoTemplateimport org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.SimpleMongoClientDatabaseFactory; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; Configuration public class MongoConfig { Bean public MongoTemplate mongoTemplate() { MongoClient mongoClient MongoClients.create(mongodb://username:passwordlocalhost:27017/yourDatabaseName); return new MongoTemplate(new SimpleMongoClientDatabaseFactory(mongoClient, yourDatabaseName)); } }注入MongoTemplateAutowired private MongoTemplate mongoTemplate;常用API实体示例import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; Document(collection Book) Data public class Book { Id private String id; private String title; private Date time; 。。。 }查询示例// 查询全部 ListBook findAll mongoTemplate.findAll(Book.class); // 构建精确查询条件 Query query new Query(); query.addCriteria(Criteria.where(name).is(name)); // 模糊查询 query.addCriteria(Criteria.where(author).regex(author, i)); // 设置分页 Pageable pageable PageRequest.of(page, size, Sort.by(desc, id)); query.with(pageable); // 执行查询 ListBook books mongoTemplate.find(query, Book.class); // 获取总数 long total mongoTemplate.count(query, Book.class);根据ID查询mongoTemplate.findById(id,Book.class);保存Book book new Book(); book.set... mongoTemplate.save(book);删除Query query new Query(); query.addCriteria(Criteria.where(_id).is(Id)); mongoTemplate.remove(query, Book.class);范围查询Criteria criteria Criteria.where(age).gte(18).and(age).lte(65); query.addCriteria(criteria); 等价于 MongoDB 查询 { age: { $gte: 18, $lte: 65 } }修改Query query new Query(); query.addCriteria(Criteria.where(_id).is(id)); Update update new Update(); update.pull(tags, tag); mongoTemplate.updateFirst(query, update, Book.class);到此常用的增删改查就完成了
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2470694.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!