MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。下面介绍的是用java操作MongoDB的一些常用写法。

  1.引用java操作MongoDB驱动包

 <dependency>
   <groupId>org.mongodb</groupId>
   <artifactId>mongo-java-driver</artifactId>
   <version>3.6.0</version>
 </dependency>

  2.java操作MongoDB一些常用写法

  1. public class MongoDBTest
  2. {
  3. //定义一个客户端
  4. private MongoClient client = null;
  5.  
  6. //定义一个MongoDB数据库
  7. private MongoDatabase database = null;
  8.  
  9. @Before
  10. public void init()
  11. {
  12. //连接MongoDB客户端
  13. client = new MongoClient("127.0.0.1", 27017);
  14. //使用数据库mongoDataBase
  15. database = client.getDatabase("mongoDataBase");
  16. }
  17.  
  18. /**
  19. *
  20. * @描述:向user集合中添加一条数据
  21. */
  22. @Test
  23. public void testInsertOne()
  24. {
  25. //获取user集合
  26. MongoCollection<Document> collection = database.getCollection("user");
  27. Document document = new Document();
  28. document.append("userName", "jack");
  29. document.append("age", 23);
  30. document.append("sex", "男");
  31. collection.insertOne(document);
  32. }
  33.  
  34. /**
  35. *
  36. * @描述:向user集合中添加多条数据
  37. */
  38. @Test
  39. public void testInsertMany()
  40. {
  41. //获取user集合
  42. MongoCollection<Document> userCollection = database.getCollection("user");
  43. //定义多个Document对象
  44. Document document1 = new Document("userName", "lily");
  45. document1.append("age", 24);
  46. document1.append("sex", "男");
  47. Document document2 = new Document("userName", "mary");
  48. document2.append("age", 30);
  49. document2.append("sex", "女");
  50. Document document3 = new Document("userName", "小吴");
  51. document3.append("age", 27);
  52. document3.append("sex", "男");
  53. userCollection.insertMany(Arrays.asList(document1, document2, document3));
  54. }
  55.  
  56. /**
  57. *
  58. * @描述:删除user集合中数据
  59. */
  60. @Test
  61. public void remove()
  62. {
  63. //获取user集合
  64. MongoCollection<Document> userCollection = database.getCollection("user");
  65. //执行删除的方法(删除age=23的所有人)
  66. //构造删除条件
  67. Bson delBson = Filters.eq("age", 23);
  68. //一次性删除所有符合条件的数据(删除age=23的所有人)
  69. userCollection.deleteMany(delBson);
  70. }
  71.  
  72. /**
  73. *
  74. * @描述:删除user集合中数据(带多个删除条件的)
  75. */
  76. @Test
  77. public void remove2()
  78. {
  79. //获取users集合
  80. MongoCollection<Document> userCollection = database.getCollection("user");
  81. //执行删除的方法(删除age>=20 并且 age<=30的所有人)
  82. //构造删除条件(age>=20)
  83. Bson delBson1 = Filters.gte("age", 20);
  84. //构造删除条件(age<=30)
  85. Bson delBson2 = Filters.lte("age", 30);
  86. //合并删除条件
  87. Bson delBson = Filters.and(delBson1, delBson2);
  88. userCollection.deleteMany(delBson);
  89. }
  90.  
  91. /**
  92. *
  93. * @描述:查询出user集合中所有数据
  94. */
  95. @Test
  96. public void testGetAll2()
  97. {
  98. //获取user集合
  99. MongoCollection<Document> userCollection = database.getCollection("user");
  100. //查询所有文档
  101. FindIterable<Document> allDocuments = userCollection.find();
  102. //获取迭代器
  103. MongoCursor<Document> iterator = allDocuments.iterator();
  104. while (iterator.hasNext())
  105. {
  106. Document document = iterator.next();
  107. System.out.println(document);
  108. }
  109. }
  110.  
  111. /**
  112. *
  113. * @描述:有条件查询user集合数据
  114. */
  115. @Test
  116. public void testGet()
  117. {
  118. //获取users集合
  119. MongoCollection<Document> userCollection = database.getCollection("user");
  120. //查询age>=25 并且age <=30的人
  121. Bson queryBson = Filters.and(Filters.gte("age", 25), Filters.lte("age", 30));
  122. FindIterable<Document> allDocuments = userCollection.find(Filters.and(queryBson));
  123. //获取迭代器
  124. MongoCursor<Document> iterator = allDocuments.iterator();
  125. while (iterator.hasNext())
  126. {
  127. Document document = iterator.next();
  128. System.out.println(document);
  129. }
  130. }
  131.  
  132. /**
  133. *
  134. * @描述:分页查询出users集合中的数据
  135. */
  136. @Test
  137. public void testGet2()
  138. {
  139. //获取users集合
  140. MongoCollection<Document> userCollection = database.getCollection("user");
  141. //查询前两个数据,skip(0):跳过0个,limit(2)查询2个
  142. FindIterable<Document> allDocuments = userCollection.find();
  143. FindIterable<Document> page = allDocuments.skip(0).limit(2);
  144. //获取迭代器
  145. MongoCursor<Document> iterator = page.iterator();
  146. while (iterator.hasNext())
  147. {
  148. Document document = iterator.next();
  149. System.out.println(document);
  150. }
  151. }
  152.  
  153. /**
  154. *
  155. * @描述:修改操作
  156. */
  157. @Test
  158. public void update()
  159. {
  160. //获取user集合
  161. MongoCollection<Document> userCollection = database.getCollection("user");
  162. ////修改 将userName为"lily" 的age改为25
  163. //db.users.update({"userName":"lily"},{$set:{"age":25}});
  164. //条件
  165. Bson eqBson = Filters.eq("userName", "lily");
  166. //要修改的内容
  167. Document updateBson = new Document("$set", new Document("age", 25));
  168. UpdateResult updateMany = userCollection.updateMany(eqBson, updateBson);
  169. System.out.println(updateMany.toString());
  170. }
  171.  
  172. @After
  173. public void close()
  174. {
  175. client.close();
  176. }
  177.  
  178. }

注意:本文仅代表个人理解和看法哟!和本人所在公司和团体无任何关系!

mongodb java操作常用写法的更多相关文章

  1. mongodb客户端操作常用命令(续)

    之前有写过一篇mongodb客户端的操作常用命令 ,今天接着来记录分享一些关于mongodb账户权限设置的命令操作 上期mongodb客户端的操作常用命令地址:https://www.cnblogs. ...

  2. Java代码常用写法总结

    1.字符串是否为空判断 以下是java 判断字符串是否为空的四种方法:方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低: if(s == null ||"".equal ...

  3. mongodb客户端操作常用命令

    一启动mongodb数据库mongod --dbpath E:\mongo\data\db(这里些自己的mongodb数据库存放目录)二客户端操作1.显示数据库集合show dbs2.新建数据库use ...

  4. 6. MongoDB——Java操作(增删改查)

    转自:https://blog.csdn.net/kai402458953/article/details/79626148 import java.net.UnknownHostException; ...

  5. Java多线程常用写法,使用匿名内部类

    匿名内部类是基于抽象类和接口而言的. //匿名内部类(解决定义过多文件的问题,标准开发一个类就是一个文件) // new Runnable() { // @Override // public voi ...

  6. java 操作mongodb查询条件的常用设置

    java操作mongodb进行查询,常用筛选条件的设置如下: 条件列表:BasicDBList condList = new BasicDBList(); 临时条件对象:BasicDBObject c ...

  7. Java操作MongoDB

    上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html 介绍到了在MongoDB的控制台完成MongoDB的数据操作,通 ...

  8. mongDB基本命令和Java操作MongoDB

    上一篇博文<mongoDB安装>我们安装了mongoDB,现在来复习一下它的一些基本命令:mongoDB的bin目录加入到path之后,命令行中输入mongo: 然后我们进入正题 1.查看 ...

  9. java 对mongodb的操作

    java 对mongodb的操作 1.1连单台mongodb Mongo mg = newMongo();//默认连本机127.0.0.1  端口为27017 Mongo mg = newMongo( ...

随机推荐

  1. [ACM] POJ 1218 THE DRUNK JAILER (关灯问题)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/sr19930829/article/details/37727417 THE DRUNK JAILE ...

  2. Python之循环遍历

    range() 快输生成序列 利用 items()提取字典元素 在Python里,for循环后面是可以接一个else 的,在for循环正常结束时候,else 语句会被执行(while循环也是一样哦), ...

  3. django 内置server 外网不能访问, 报连接超时

    按照官网教程,以 python manage.py runserver 其访问url为 http://127.0.0.1:8000,意味着只能本机访问,而我的django app 部署在 阿里云上面 ...

  4. mac 创建多个全局Path

    cd ~ 进入根目录 (没有这个文件 先touch .bash_profile) open -e .bash_profile 打开编辑然后保存 JAVA_HOME=/Library/Java/Java ...

  5. JAVA学习,边学习边总结边记录

    纯属个人想法,个人感觉,有什么不足之处,还望看到的人指正. 我将一步一步的往下记录下去,后面会加一个基本完整的程序,敬请期待. 一.java基础 二.java面向对象 三.html,jsp 四.Jav ...

  6. docker linux基本操作

    容器运行起来之后一些基本的工具还是要安装好: 这个工具的安装方式和linux是一样的,因为容器本身就是一个微linux系统 先安装 apt, 1 / apt-get update 安装了apt之后 可 ...

  7. OVR工厂简介

    最近在写分布式架构的应用,顺便写了一个轻量级的集群批量创建影像金字塔的软件,在遥感影像生产中能提升不少效率.以下是软件简介: 由于32位ArcGIS在批量创建影像金字塔中计算力不足和易中断的缺点,在创 ...

  8. 解决springdatajpa插入大量数据速度慢的问题

    通过看控制台日志可以知道,jpa执行插入的时候每次都会先查询是否存在,然后再一条一条的执行插入,速度相当慢,所以可以jpa和mybatis一起用,用mybatis写原生的sql语句,用过foreach ...

  9. go变量和声明

    go变量和声明 这将是美好的开始和结束,通过写下x = 4,我们查看变量,可以说声明了一个变量并赋值,但是很不幸,go语言变量声明和赋值比这更复杂.通过学习一些简单的示例开始学习变量声明和赋值.然后在 ...

  10. VC 串口通讯基本原理,讲的很是详细

    目 录打开串口............................................................................................. ...