1.pom.xml

  1. <dependency>
  2. <groupId>org.mongodb</groupId>
  3. <artifactId>mongo-java-driver</artifactId>
  4. <version>3.5.0</version>
  5. </dependency>

2.Java代码

  1. package cn.duanjt;
  2.  
  3. import java.util.Arrays;
  4.  
  5. import org.bson.Document;
  6. import org.bson.conversions.Bson;
  7. import org.junit.Before;
  8. import org.junit.Test;
  9.  
  10. import com.mongodb.Block;
  11. import com.mongodb.MongoClient;
  12. import com.mongodb.client.FindIterable;
  13. import com.mongodb.client.MongoCollection;
  14. import com.mongodb.client.MongoDatabase;
  15. import com.mongodb.client.result.DeleteResult;
  16.  
  17. //注意是静态导入
  18. import static com.mongodb.client.model.Updates.*;
  19. import static com.mongodb.client.model.Filters.*;
  20.  
  21. public class MongoDB {
  22. MongoClient client;// mongo连接实例
  23. MongoDatabase dataBase;// 数据库
  24. MongoCollection<Document> collection;// 集合,类似于关系型数据库的表
  25.  
  26. @Before
  27. public void init() {
  28. client = new MongoClient("192.168.23.24", 27022);
  29. dataBase = client.getDatabase("duanjt");
  30. collection = dataBase.getCollection("teacher");
  31. }
  32.  
  33. // 插入一条数据
  34. @Test
  35. public void insert() {
  36. Document doc = new Document();
  37. doc.append("name", "李四");
  38. doc.append("addr", "重庆");
  39. doc.append("likes", Arrays.asList("排球", "篮球"));// 数组
  40. collection.insertOne(doc);// 插入数据时会自动创建数据库和集合
  41. System.out.println("success");
  42. }
  43.  
  44. // 修改,把李四的爱好修改为 足球和羽毛球
  45. @Test
  46. public void update1() {
  47. Bson eq = eq("name", "张三");
  48. Bson set = set("likes", Arrays.asList("足球", "羽毛球"));
  49. collection.updateMany(eq, set);
  50. System.out.println("修改成功");
  51. }
  52.  
  53. // 修改,把李四的爱好新增 足球和羽毛球
  54. @Test
  55. public void update2() {
  56. Bson eq = eq("name", "李四");
  57. Bson set = pushEach("likes", Arrays.asList("足球", "羽毛球"));
  58. collection.updateMany(eq, set);
  59. System.out.println("修改成功");
  60. }
  61.  
  62. // 查询爱好足球的老师
  63. @Test
  64. public void find() {
  65. Bson filter = in("likes", Arrays.asList("足球"));
  66. FindIterable<Document> find = collection.find(filter);
  67. find.forEach(new Block<Document>() {
  68. @Override
  69. public void apply(Document t) {
  70. System.out.println(t.toJson());
  71. }
  72. });
  73. }
  74.  
  75. //删除数据
  76. @Test
  77. public void delete() {
  78. Bson filter = eq("name", "duanjt");
  79. DeleteResult deleteMany = collection.deleteMany(filter);
  80. System.out.println("删除数据:" + deleteMany.getDeletedCount());
  81. }
  82.  
  83. // 删除集合
  84. @Test
  85. public void dropCol() {
  86. collection.drop();
  87. System.out.println("删除成功");
  88. }
  89.  
  90. }

稍微注意注释部分的代码即可

MongoDB 关系型数据库
数据库 数据库
集合
文档 一行数据

Java原生API访问MongoDB的更多相关文章

  1. MongoDB最简单的入门教程之五-通过Restful API访问MongoDB

    通过前面四篇的学习,我们已经在本地安装了一个MongoDB数据库,并且通过一个简单的Spring boot应用的单元测试,插入了几条记录到MongoDB中,并通过MongoDB Compass查看到了 ...

  2. Java原生API操作XML

    使用Java操作XML的开源框架比较多,如著名的Dom4J.JDOM等,但个人认为不管你用那个框架都要对JDK原生的API有所了解才能更得心应手的应用.本篇就来简单了解下原生的XML API. JAV ...

  3. 不使用spring的情况下用java原生代码操作mongodb数据库的两种方式

    由于更改了mongodb3.0数据库的密码,导致这几天storm组对数据进行处理的时候,一直在报mongodb数据库连接不上的异常.   主要原因实际上是和mongodb本身无关的,因为他们改的是配置 ...

  4. java 网络API访问 web 站点

    package cn.magicdu.think.socket; import java.io.BufferedReader; import java.io.InputStreamReader; im ...

  5. Structure Streaming和spark streaming原生API访问HDFS文件数据对比

    此文已由作者岳猛授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. Structure Stream访问方式 code examples import org.apache.sp ...

  6. Zookeeper(三)-- JAVA原生API

    一.前提 jar包:zookeeper-3.4.9.jar,slf4j-api-1.6.1.jar,slf4j-log4j12-1.6.1.jar,log4j-1.2.15.jar 二.Demo pa ...

  7. 使用java原生API模拟请求下载文件

    /** * * @param urlPath * 下载路径 * @param saveDir * 下载存放目录 * @return 返回下载文件 * @throws Exception */ publ ...

  8. JAVA API访问Hbase org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=32

    Java使用API访问Hbase报错: 我的hbase主节点是spark1   java代码访问hbase的时候写的是ip 结果运行程序报错 不能够识别主机名 修改主机名     修改主机hosts文 ...

  9. ZooKeeper实现配置中心的实例(原生API实现)(转)

    说明:要实现配置中心的例子,可以选择的SDK有很多,原生自带的SDK也是不错的选择.比如使用I0Itec,Spring Boot集成等. 大型应用通常会按业务拆分成一个个业务子系统,这些大大小小的子应 ...

随机推荐

  1. centOs6.5配置启动ssh

    .非root用户则执行su或su - 或su root或su - root切换为root用户 2.查看SSH是否安装(检查是否装了SSH包) 输入命令:rpm -qa | grep ssh 注:若没安 ...

  2. BeeHive小思考

    事件分发和事件处理 将所有行为注册为不同的时间类型,配置Module,让他们在事件发生时,响应这些事件(除了系统的事件,还可以注册自定义事件,触发自定义事件) Module注册之后应当会生成单例对象, ...

  3. 好用的 over the wall教程

    还在为翻 xxx墙苦恼吗,一分钟就能搞定的翻xxx墙教程 1.下载chrome扩展插件 Proxy SwitchyOmega,加入到谷歌的高级扩展程序当中,这个就不详细讲解了. 请戳 https:// ...

  4. usb_camera

  5. qt opencv编译错误 /usr/local/lib/libopencv_imgcodecs.so.3.1:-1: error: error adding symbols: DSO missing from command line

    转载自:http://tbfungeek.github.io/2016/03/05/Opencv-%E5%AE%89%E8%A3%85%E8%BF%87%E7%A8%8B%E4%B8%AD%E5%87 ...

  6. 小程序 切换到tabBar页面不刷新问题

    小程序跳转的几种方式有wx.navigateTo,wx.redirectTo,wx.reLaunch,wx.switchTab等.下面我们重点研究切换到tabBar的两种方式. wx.switchTa ...

  7. RPC服务和HTTP服务对比

    RPC服务和HTTP服务对比 RPC(即Remote Procedure Call,远程过程调用) 协议区别: RPC主要是基于TCP/IP协议的,而HTTP服务主要是基于HTTP协议的,我们都知道H ...

  8. Linux平台 Oracle 18c RAC安装Part3:DB配置

    四.DB(Database)配置 4.1 解压DB的安装包 4.2 DB软件配置 4.3 ASMCA创建磁盘组 4.4 DBCA建库 4.5 验证crsctl的状态 Linux平台 Oracle 18 ...

  9. arithmetic-02

    Java collection API 中实现的表ADT: collection<E>接口实现继承iterable<E>接口,实现iterable接口的类可以使用增强for循环 ...

  10. 去掉iframe边框

    css样式的border:none来去掉iframe的边框在IE下无效,需给iframe标签添加属性frameborder="no"<iframe frameborder=& ...