springboot+mongodb
2019独角兽企业重金招聘Python工程师标准>>>
pom.xml
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency>
application.properties:
spring.data.mongodb.uri=mongodb://localhost:27017/test
UserRepository:类似Jpa查询方式
public interface UserRepository extends MongoRepository<User, String> {List<User> findByName(String name); }
UserController:
添加操作
@RequestMapping("add") public String add() {User user = new User();user.setName("sher");user.setAge(11);return userRepository.save(user).toString(); }
更新操作
@RequestMapping("edit/{id}") public String edit(@PathVariable String id) {User user = userRepository.findOne(id);user.setName("sher_edit");return userRepository.save(user).toString(); }
删除操作
@RequestMapping(value = "del/{id}", method = RequestMethod.DELETE) public void del(@PathVariable String id) {userRepository.delete(id); }
mongoTemplate操作:
mongoTemplate.save(user);//添加Query query = new Query(Criteria.where("name").is("sher"));List<User> userList = mongoTemplate.find(query, User.class);//查询所有name是sheruserList.forEach(System.out::println);User one = mongoTemplate.findOne(query, User.class);//单个结果查询操作System.out.println("查询单个User:" + one.toString());Update update = new Update().set("age", 24);User modify = mongoTemplate.findAndModify(query, update, User.class);//数据库更新了但是返回的是旧的对象System.out.println("返回更新前对象:" + modify);Update update2 = new Update().set("age", 26);FindAndModifyOptions upsert = new FindAndModifyOptions().returnNew(true).upsert(true);User andModify = mongoTemplate.findAndModify(query, update2, upsert, User.class);//返回更新后对象System.out.println("返回更新后对象" + andModify); // mongoTemplate.updateFirst(query, update, User.class);//进行第一条符合要求的数据更新 // mongoTemplate.updateMulti(query, update, User.class);//进行更新多行数据 // mongoTemplate.remove(user);//进行数据删除
注意:upsert(true),update和insert结合体默认为false,当它为true的时候,update方法会首先查找与第一个参数匹配的记录,在用第二个参数更新之,如果找不到与第一个参数匹配的的记录,就插入一条
后台打印结果:
User{id='58e846a758717a2878845638', name='sher', age=33} User{id='58e855e958717a1a202a645f', name='sher', age=11} User{id='58e8583358717a2c58077fea', name='sher', age=11} User{id='58e858c858717a1b343b4132', name='sher', age=11} User{id='58e85a4e58717a2e50a577c1', name='sher', age=11} 查询单个User:User{id='58e846a758717a2878845638', name='sher', age=33} 返回更新前对象:User{id='58e846a758717a2878845638', name='sher', age=33} 返回更新后对象User{id='58e846a758717a2878845638', name='sher', age=26}
还有更多方法具体参照api
完整例子
转载于:https://my.oschina.net/u/3125112/blog/875231
springboot+mongodb相关推荐
- idea+springboot+mongodb的实战使用分享
昨天的时候我们先在网上找了测试类,测试了一下mongdb的简单使用,今天就来实地在项目中用一用 没安装mongodb的参考我上一篇文章:idea+springboot+mongodb的简单测试使用分享 ...
- SpringBoot MongoDB 插入内容去掉_class字段
看了一些网上去掉_class的文章 基本都是一样的 加个MongoConfig 配置文件,而且没有参考源码.直接添加一个MongoConfig 配置文件并没有什么效果,可能是还有别的地方需要做修改吧, ...
- SpringBoot+MongoDB GridFS文件上传、下载、预览实战
SpringBoot + MongoDB GridFS 随着web 3.0的兴起,数据的形式不局限于文字,还有语音.视频.图片等.高效存储与检索二进制数据也成为web 3.0必须要考虑的问题.然而这种 ...
- 视频教程-SpringBoot+MongoDB+Vue前后分离-Java
SpringBoot+MongoDB+Vue前后分离 10多年互联网一线实战经验,现就职于大型知名互联网企业,架构师, 有丰富实战经验和企业面试经验:曾就职于某上市培训机构数年,独特的培训思路,培训体 ...
- SpringBoot+MongoDB实现一个物流订单系统
码字不易,点赞收藏,养成习惯!原创作者公众号:bigsai,回复bigsai领取5G的PDF学习资源!共同进步.更多精彩期待与您分享! 项目收录在github的MongoDB案例中,文章收录在回车课堂 ...
- 飞鸟小说 springboot mongodb开源小说建站系统推荐
springboot mongodb开源小说建站系统推荐(开源) 介绍 技术选型 项目地址 介绍 飞鸟小说建站系统 技术选型 技术 说明 SpringBoot Spring应用快速开发脚手架 WebM ...
- SpringBoot+MongoDB查询大数据字段优化
记录一下 SpringBoot+MongoDB查询大数据字段,查询的单个字段或者总查询结果量太大 用 mongoTemplate.find(query, NewSnapshot.class, coll ...
- idea+springboot+mongodb的简单测试使用分享
1,先去官网下载,选择版本,选择Windows,就可以点击下载了. 2,安装mongodb. 下一步安装 "install mongoDB compass" 不勾选(当然你也可以选 ...
- 补习系列(17)-springboot mongodb 内嵌数据库
目录 简介 一.使用 flapdoodle.embed.mongo A. 引入依赖 B. 准备测试类 C. 完善配置 D. 启动测试 细节 二.使用Fongo A. 引入框架 B. 准备测试类 C.业 ...
- 补习系列(16)-springboot mongodb 数据库应用技巧
目录 一.关于 MongoDB 二.Spring-Data-Mongo 三.整合 MongoDB CRUD A. 引入框架 B. 数据库配置 C. 数据模型 D. 数据操作 E. 自定义操作 四.高级 ...
最新文章
- 36.两个链表的第一个公共结点——剑指offer
- 梯度下降法(一)入门
- Spark _09资源调度和任务调度
- 【STC15库函数上手笔记】6、ADC
- android横竖屏切换布局闪退,Android-Activity横竖屏切换不杀死Activity 并监听横竖屏切换...
- mysql 日期型中文报错_mysql日期类型默认值'0000-00-00' 报错,是什么问题?
- Android系统(118)---Android抓取各种log的方法
- 没有找到MSVCP80D.dll,因此这个应用程序未能启动。重新安装应用程序...
- python调用matlab函数_python调用matlab的m自定义函数方法
- CurvySplines基础
- LoRa技术-什么是LoRa
- 腾讯IM发送消息20001
- 全球AI泰斗Stuart Rusell:研究人工智能太诱人了,不可抗拒
- 电视android怎么连接手机助手下载,手机怎么连到电视上?
- 液金显示器台式计算机耗电量,记笔记本CPU开盖换液金经过
- ImageLoader加载圆形图片
- android 字符转double,Android String类型转换为float、double和int的工具类方法
- Excel函数之~计算日期、天数、星期
- Android自定义带标题边框的Layout
- 通过SSH远程控制服务器