博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
0115 springboot template方式操作mongodb
阅读量:4208 次
发布时间:2019-05-26

本文共 4062 字,大约阅读时间需要 13 分钟。

前言

redis性能基准是10w次读写/秒;

但是不适用于下面的场景:

需要缓存,但是经常需要统计,分析和查询。

这种场景适合使用Mongodb; 

他是最接近关系数据库的NOSQL;

mongodb介绍:::infoC 语言编写,基于分布式文件存储的开源数据库系统,在负载高的时候,可以添加更多的节点,保证服务器性能。可扩展高性能的数据存储方案。

mongodb把数据存储为一个文档,数据结构是键值对,字段值还可以包含其他的文档,数组等;:::

安装mongodb

我的是mac电脑,简单记录一下安装和使用步骤;

  1. brew cask install mongodb 
  2. 设置path ;
  3. mongo   连接mongodb
  4. use database_name  创建数据库

配置

依赖

org.springframework.boot
spring-boot-starter-data-mongodb
com.alibaba
fastjson
1.2.39

属性配置

spring.data.mongodb.host=127.0.0.1spring.data.mongodb.username=springspring.data.mongodb.password=123456spring.data.mongodb.port=27017spring.data.mongodb.database=springboot

MongoTemplate

可以直接通过MongoTemplate操作mongodb;

代码

package com.springbootpractice.demo.mongodb.service;import com.mongodb.client.result.DeleteResult;import com.mongodb.client.result.UpdateResult;import com.springbootpractice.demo.mongodb.dao.entity.User;import org.springframework.data.mongodb.core.MongoTemplate;import org.springframework.data.mongodb.core.query.Criteria;import org.springframework.data.mongodb.core.query.Query;import org.springframework.data.mongodb.core.query.Update;import org.springframework.stereotype.Service;import java.util.List;/** * 说明:mongodb操作代码 * @author carter * 创建时间: 2020年01月15日 3:02 下午 **/@Servicepublic class UserService {    private final MongoTemplate mongoTemplate;    public UserService(MongoTemplate mongoTemplate) {        this.mongoTemplate = mongoTemplate;    }    public void saveUser(User user) {        mongoTemplate.save(user);    }    public DeleteResult deleteUser(Long id) {        Query query = Query.query(Criteria.where("id").is(id));        return mongoTemplate.remove(query, User.class);    }    public List
findUser(String userName, String note, int skip, int limit) { final Criteria criteria = Criteria.where("userName") .regex(userName) .and("note") .regex(note); Query query = Query.query(criteria) .limit(limit) .skip(skip); return mongoTemplate.find(query, User.class); } public UpdateResult updateUser(Long id, String userName, String note) { Update update = new Update(); update.set("userName", userName); update.set("note", note); Query query = Query.query(Criteria.where("id").is(id)); return mongoTemplate.updateFirst(query, update, User.class); } public User getUser(Long id) { return mongoTemplate.findById(id, User.class); }}

测试代码

package com.springbootpractice.demo.mongodb;import com.springbootpractice.demo.mongodb.dao.entity.Role;import com.springbootpractice.demo.mongodb.dao.entity.User;import com.springbootpractice.demo.mongodb.service.UserService;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import java.util.Arrays;import java.util.stream.IntStream;@SpringBootTestclass DemoMongodbApplicationTests {    @Autowired    private UserService userService;    @Test    void mongodbTest() {        IntStream.rangeClosed(1, 10).forEach((item) -> {            final long id = System.currentTimeMillis();            userService.saveUser(User.builder().id(id)                    .userName("user")                    .note("note")                    .roles(Arrays.asList(Role.builder().id(id)                                    .roleName("role"   id)                                    .note("note"   id)                                    .build(),                            Role.builder().id(id   1000000)                                    .roleName("_role"   id)                                    .note("_note"   id)                                    .build()                    ))                    .build());        });        userService.findUser("user", "note", 0, 10)                .forEach(System.out::println);    }}

小结

本篇文章你可以学会:

1. mongodb的简要介绍,安装;

1. springboot的template方式实现mongodb的增删改查操作;

原创不易,转载请注明出处,欢迎多沟通交流

你可能感兴趣的文章
CentOS5.x 系统安装-图形模式
查看>>
CentOS硬盘安装方法
查看>>
Linux学习记录--关机相关操作
查看>>
Linux学习记录--文件权限
查看>>
Linux学习记录--目录配置FHS
查看>>
Linux学习记录--文件与目录管理
查看>>
Linux学习记录--文件内容查阅
查看>>
Linux学习记录--文件|目录的默认权限与隐藏权限
查看>>
Linux学习记录--命令与文件的查询
查看>>
Linux命令缩写
查看>>
Linux学习记录--文件系统简介
查看>>
Linux学习记录--文件系统简单操作
查看>>
Linux学习记录--磁盘分区,格式化与检验
查看>>
Linux学习记录--磁盘挂载与卸载
查看>>
Linux学习记录--内存交换空间的构建
查看>>
Linux学习记录--文件压缩
查看>>
Linux学习记录--文件备份|还原
查看>>
ASCII、ANSI、Unicode及UTF-8编码
查看>>
Unicode,ANSI,UTF-8的故事
查看>>
ANSI、Unicode、UTF-8、DBCS等字符集及相关数据类型、函数的区别
查看>>