mongodb java操作常用写法
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一些常用写法
- public class MongoDBTest
- {
- //定义一个客户端
- private MongoClient client = null;
- //定义一个MongoDB数据库
- private MongoDatabase database = null;
- @Before
- public void init()
- {
- //连接MongoDB客户端
- client = new MongoClient("127.0.0.1", 27017);
- //使用数据库mongoDataBase
- database = client.getDatabase("mongoDataBase");
- }
- /**
- *
- * @描述:向user集合中添加一条数据
- */
- @Test
- public void testInsertOne()
- {
- //获取user集合
- MongoCollection<Document> collection = database.getCollection("user");
- Document document = new Document();
- document.append("userName", "jack");
- document.append("age", 23);
- document.append("sex", "男");
- collection.insertOne(document);
- }
- /**
- *
- * @描述:向user集合中添加多条数据
- */
- @Test
- public void testInsertMany()
- {
- //获取user集合
- MongoCollection<Document> userCollection = database.getCollection("user");
- //定义多个Document对象
- Document document1 = new Document("userName", "lily");
- document1.append("age", 24);
- document1.append("sex", "男");
- Document document2 = new Document("userName", "mary");
- document2.append("age", 30);
- document2.append("sex", "女");
- Document document3 = new Document("userName", "小吴");
- document3.append("age", 27);
- document3.append("sex", "男");
- userCollection.insertMany(Arrays.asList(document1, document2, document3));
- }
- /**
- *
- * @描述:删除user集合中数据
- */
- @Test
- public void remove()
- {
- //获取user集合
- MongoCollection<Document> userCollection = database.getCollection("user");
- //执行删除的方法(删除age=23的所有人)
- //构造删除条件
- Bson delBson = Filters.eq("age", 23);
- //一次性删除所有符合条件的数据(删除age=23的所有人)
- userCollection.deleteMany(delBson);
- }
- /**
- *
- * @描述:删除user集合中数据(带多个删除条件的)
- */
- @Test
- public void remove2()
- {
- //获取users集合
- MongoCollection<Document> userCollection = database.getCollection("user");
- //执行删除的方法(删除age>=20 并且 age<=30的所有人)
- //构造删除条件(age>=20)
- Bson delBson1 = Filters.gte("age", 20);
- //构造删除条件(age<=30)
- Bson delBson2 = Filters.lte("age", 30);
- //合并删除条件
- Bson delBson = Filters.and(delBson1, delBson2);
- userCollection.deleteMany(delBson);
- }
- /**
- *
- * @描述:查询出user集合中所有数据
- */
- @Test
- public void testGetAll2()
- {
- //获取user集合
- MongoCollection<Document> userCollection = database.getCollection("user");
- //查询所有文档
- FindIterable<Document> allDocuments = userCollection.find();
- //获取迭代器
- MongoCursor<Document> iterator = allDocuments.iterator();
- while (iterator.hasNext())
- {
- Document document = iterator.next();
- System.out.println(document);
- }
- }
- /**
- *
- * @描述:有条件查询user集合数据
- */
- @Test
- public void testGet()
- {
- //获取users集合
- MongoCollection<Document> userCollection = database.getCollection("user");
- //查询age>=25 并且age <=30的人
- Bson queryBson = Filters.and(Filters.gte("age", 25), Filters.lte("age", 30));
- FindIterable<Document> allDocuments = userCollection.find(Filters.and(queryBson));
- //获取迭代器
- MongoCursor<Document> iterator = allDocuments.iterator();
- while (iterator.hasNext())
- {
- Document document = iterator.next();
- System.out.println(document);
- }
- }
- /**
- *
- * @描述:分页查询出users集合中的数据
- */
- @Test
- public void testGet2()
- {
- //获取users集合
- MongoCollection<Document> userCollection = database.getCollection("user");
- //查询前两个数据,skip(0):跳过0个,limit(2)查询2个
- FindIterable<Document> allDocuments = userCollection.find();
- FindIterable<Document> page = allDocuments.skip(0).limit(2);
- //获取迭代器
- MongoCursor<Document> iterator = page.iterator();
- while (iterator.hasNext())
- {
- Document document = iterator.next();
- System.out.println(document);
- }
- }
- /**
- *
- * @描述:修改操作
- */
- @Test
- public void update()
- {
- //获取user集合
- MongoCollection<Document> userCollection = database.getCollection("user");
- ////修改 将userName为"lily" 的age改为25
- //db.users.update({"userName":"lily"},{$set:{"age":25}});
- //条件
- Bson eqBson = Filters.eq("userName", "lily");
- //要修改的内容
- Document updateBson = new Document("$set", new Document("age", 25));
- UpdateResult updateMany = userCollection.updateMany(eqBson, updateBson);
- System.out.println(updateMany.toString());
- }
- @After
- public void close()
- {
- client.close();
- }
- }
注意:本文仅代表个人理解和看法哟!和本人所在公司和团体无任何关系!
mongodb java操作常用写法的更多相关文章
- mongodb客户端操作常用命令(续)
之前有写过一篇mongodb客户端的操作常用命令 ,今天接着来记录分享一些关于mongodb账户权限设置的命令操作 上期mongodb客户端的操作常用命令地址:https://www.cnblogs. ...
- Java代码常用写法总结
1.字符串是否为空判断 以下是java 判断字符串是否为空的四种方法:方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低: if(s == null ||"".equal ...
- mongodb客户端操作常用命令
一启动mongodb数据库mongod --dbpath E:\mongo\data\db(这里些自己的mongodb数据库存放目录)二客户端操作1.显示数据库集合show dbs2.新建数据库use ...
- 6. MongoDB——Java操作(增删改查)
转自:https://blog.csdn.net/kai402458953/article/details/79626148 import java.net.UnknownHostException; ...
- Java多线程常用写法,使用匿名内部类
匿名内部类是基于抽象类和接口而言的. //匿名内部类(解决定义过多文件的问题,标准开发一个类就是一个文件) // new Runnable() { // @Override // public voi ...
- java 操作mongodb查询条件的常用设置
java操作mongodb进行查询,常用筛选条件的设置如下: 条件列表:BasicDBList condList = new BasicDBList(); 临时条件对象:BasicDBObject c ...
- Java操作MongoDB
上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html 介绍到了在MongoDB的控制台完成MongoDB的数据操作,通 ...
- mongDB基本命令和Java操作MongoDB
上一篇博文<mongoDB安装>我们安装了mongoDB,现在来复习一下它的一些基本命令:mongoDB的bin目录加入到path之后,命令行中输入mongo: 然后我们进入正题 1.查看 ...
- java 对mongodb的操作
java 对mongodb的操作 1.1连单台mongodb Mongo mg = newMongo();//默认连本机127.0.0.1 端口为27017 Mongo mg = newMongo( ...
随机推荐
- [ACM] POJ 1218 THE DRUNK JAILER (关灯问题)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/sr19930829/article/details/37727417 THE DRUNK JAILE ...
- Python之循环遍历
range() 快输生成序列 利用 items()提取字典元素 在Python里,for循环后面是可以接一个else 的,在for循环正常结束时候,else 语句会被执行(while循环也是一样哦), ...
- django 内置server 外网不能访问, 报连接超时
按照官网教程,以 python manage.py runserver 其访问url为 http://127.0.0.1:8000,意味着只能本机访问,而我的django app 部署在 阿里云上面 ...
- mac 创建多个全局Path
cd ~ 进入根目录 (没有这个文件 先touch .bash_profile) open -e .bash_profile 打开编辑然后保存 JAVA_HOME=/Library/Java/Java ...
- JAVA学习,边学习边总结边记录
纯属个人想法,个人感觉,有什么不足之处,还望看到的人指正. 我将一步一步的往下记录下去,后面会加一个基本完整的程序,敬请期待. 一.java基础 二.java面向对象 三.html,jsp 四.Jav ...
- docker linux基本操作
容器运行起来之后一些基本的工具还是要安装好: 这个工具的安装方式和linux是一样的,因为容器本身就是一个微linux系统 先安装 apt, 1 / apt-get update 安装了apt之后 可 ...
- OVR工厂简介
最近在写分布式架构的应用,顺便写了一个轻量级的集群批量创建影像金字塔的软件,在遥感影像生产中能提升不少效率.以下是软件简介: 由于32位ArcGIS在批量创建影像金字塔中计算力不足和易中断的缺点,在创 ...
- 解决springdatajpa插入大量数据速度慢的问题
通过看控制台日志可以知道,jpa执行插入的时候每次都会先查询是否存在,然后再一条一条的执行插入,速度相当慢,所以可以jpa和mybatis一起用,用mybatis写原生的sql语句,用过foreach ...
- go变量和声明
go变量和声明 这将是美好的开始和结束,通过写下x = 4,我们查看变量,可以说声明了一个变量并赋值,但是很不幸,go语言变量声明和赋值比这更复杂.通过学习一些简单的示例开始学习变量声明和赋值.然后在 ...
- VC 串口通讯基本原理,讲的很是详细
目 录打开串口............................................................................................. ...