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相关推荐

  1. idea+springboot+mongodb的实战使用分享

    昨天的时候我们先在网上找了测试类,测试了一下mongdb的简单使用,今天就来实地在项目中用一用 没安装mongodb的参考我上一篇文章:idea+springboot+mongodb的简单测试使用分享 ...

  2. SpringBoot MongoDB 插入内容去掉_class字段

    看了一些网上去掉_class的文章 基本都是一样的 加个MongoConfig 配置文件,而且没有参考源码.直接添加一个MongoConfig 配置文件并没有什么效果,可能是还有别的地方需要做修改吧, ...

  3. SpringBoot+MongoDB GridFS文件上传、下载、预览实战

    SpringBoot + MongoDB GridFS 随着web 3.0的兴起,数据的形式不局限于文字,还有语音.视频.图片等.高效存储与检索二进制数据也成为web 3.0必须要考虑的问题.然而这种 ...

  4. 视频教程-SpringBoot+MongoDB+Vue前后分离-Java

    SpringBoot+MongoDB+Vue前后分离 10多年互联网一线实战经验,现就职于大型知名互联网企业,架构师, 有丰富实战经验和企业面试经验:曾就职于某上市培训机构数年,独特的培训思路,培训体 ...

  5. SpringBoot+MongoDB实现一个物流订单系统

    码字不易,点赞收藏,养成习惯!原创作者公众号:bigsai,回复bigsai领取5G的PDF学习资源!共同进步.更多精彩期待与您分享! 项目收录在github的MongoDB案例中,文章收录在回车课堂 ...

  6. 飞鸟小说 springboot mongodb开源小说建站系统推荐

    springboot mongodb开源小说建站系统推荐(开源) 介绍 技术选型 项目地址 介绍 飞鸟小说建站系统 技术选型 技术 说明 SpringBoot Spring应用快速开发脚手架 WebM ...

  7. SpringBoot+MongoDB查询大数据字段优化

    记录一下 SpringBoot+MongoDB查询大数据字段,查询的单个字段或者总查询结果量太大 用 mongoTemplate.find(query, NewSnapshot.class, coll ...

  8. idea+springboot+mongodb的简单测试使用分享

    1,先去官网下载,选择版本,选择Windows,就可以点击下载了. 2,安装mongodb. 下一步安装 "install mongoDB compass" 不勾选(当然你也可以选 ...

  9. 补习系列(17)-springboot mongodb 内嵌数据库

    目录 简介 一.使用 flapdoodle.embed.mongo A. 引入依赖 B. 准备测试类 C. 完善配置 D. 启动测试 细节 二.使用Fongo A. 引入框架 B. 准备测试类 C.业 ...

  10. 补习系列(16)-springboot mongodb 数据库应用技巧

    目录 一.关于 MongoDB 二.Spring-Data-Mongo 三.整合 MongoDB CRUD A. 引入框架 B. 数据库配置 C. 数据模型 D. 数据操作 E. 自定义操作 四.高级 ...

最新文章

  1. 36.两个链表的第一个公共结点——剑指offer
  2. 梯度下降法(一)入门
  3. Spark _09资源调度和任务调度
  4. 【STC15库函数上手笔记】6、ADC
  5. android横竖屏切换布局闪退,Android-Activity横竖屏切换不杀死Activity 并监听横竖屏切换...
  6. mysql 日期型中文报错_mysql日期类型默认值'0000-00-00' 报错,是什么问题?
  7. Android系统(118)---Android抓取各种log的方法
  8. 没有找到MSVCP80D.dll,因此这个应用程序未能启动。重新安装应用程序...
  9. python调用matlab函数_python调用matlab的m自定义函数方法
  10. CurvySplines基础
  11. LoRa技术-什么是LoRa
  12. 腾讯IM发送消息20001
  13. 全球AI泰斗Stuart Rusell:研究人工智能太诱人了,不可抗拒
  14. 电视android怎么连接手机助手下载,手机怎么连到电视上?
  15. 液金显示器台式计算机耗电量,记笔记本CPU开盖换液金经过
  16. ImageLoader加载圆形图片
  17. android 字符转double,Android String类型转换为float、double和int的工具类方法
  18. Excel函数之~计算日期、天数、星期
  19. Android自定义带标题边框的Layout
  20. 通过SSH远程控制服务器

热门文章

  1. Linux 下 ls -l 命令执行显示结果的每一列含义 图解 (附带ls命令详解)
  2. 清华出品:一文看尽AI芯片两类瓶颈三大趋势,存储技术开拓新疆界 | 附全文...
  3. Elasticsearch5.x 升级-插件
  4. 友元程序集(C# 和 Visual Basic)
  5. 记一次小的51CTO聚会
  6. ubuntu启动时自动挂载windows分区
  7. 基于自然语言的软件工程和程序设计(下)
  8. 《高质量java程序设计》读书笔记之----异常处理(1)
  9. 单元测试instrumentation入门---eclipse
  10. 统一代码段与非一致代码段