今天来讲一讲我们如何使用Java来对MongoDB进行增删改查

目录

一,Java链接MongoDB

导入MongoDB驱动包

获取链接对象

关闭链接

二,Java操作MongoDB

查看库,查看集合

1.查看链接的MongoDB中的所有的库

2.使用库查看库中的集合

添加数据

1.插入一条数据

2.插入多条数据

删除数据

1.删除一条数据

2.删除多条数据

修改数据

Filters

1.修改一条数据

2.修改多条数据

3.多条件修改数据

查询数据

1.全查

2.带条件查询

3.带多个条件查询

4.模糊查询

5.分页查询

6.排序查询

总结


一,Java链接MongoDB

导入MongoDB驱动包

在操作前,我们需要导入MongoDB的驱动包,如下图:

获取链接对象

接下来我们需要获取链接对象:

MongoClient mongoClient = new MongoClient("localhost",27017);

我们看到这里需要填入两个参数,第一个是地址,这里我们用本地主机做演示,所以填"localhost"即可,第二个参数则是端口号,这里MongoDB默认的端口号为 27017 ,倘若后期有需求我们也可以依据需求进行更改。

关闭链接

就像我们之前使用mybatis一样,我们需要在最后将资源关闭

mongoClient.close();

二,Java操作MongoDB

查看库,查看集合

在MongoDB中的集合我们可以将其近似理解为MySQL中的表,这种类似的概念如下:

1.查看链接的MongoDB中的所有的库

MongoIterable<String> dblist = mongoClient.listDatabaseName();for(String db : dbslist){System.out.println(db);
}

2.使用库查看库中的集合

MongoDatabase bbsDB = mongoClient.getDatabase("bbs");MongoIterable<String> collist = bbsDB.listCollectionNames();for(String s : collist) {System.out.println(s);
}

添加数据

1.插入一条数据

//存入MongoDB的数据
Comment com = new Comment();
com.setContent("专家说空腹不宜吃早餐");
com. setPublishtime (new Date());//将数据转换为json格式
Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
String json = gson.toJson(com);//获取集合对象
MongoCollection<Document> commCol = bbsDB.getCollection("comment");//添加一条数据--将json格式转换为decument对象
commCol.insertOne(Document.parse(json));

2.插入多条数据

//存入MongoDB的数据
List<Document> dlist = new ArrayList<Document>();//需要的数据
for(int i =; i < 5; i++){Comment com = new Comment();com. setId(Integer.toString(i+1));com. setContent("专家说空腹不宜吃早餐");com.setPublishtime (new Date());//将数据转换为json格式Gson gson = new GsonBuilder().setDateFormat("yyyy-M-dd HH:mm:ss").create();String json = gson.toJson(com);dlist.add(Document.parse(json));
}//获取集合对象
MongoCollection<Document> commCol = bbsDB.getCollection(" comment");//添加多条数据
commCol.insertMany(dlist);

删除数据

1.删除一条数据

//删除数据
MongoCollection<Document> commCol = bbsDB.getCollection("comment");Comment com = new Comment();
com.setId("1");Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();Bson bson = Document.parse(gson.to]son(com));DeleteResult deleteOne = commCol.deleteOne (bson);if(deleteOne.getDeletedCount() > 0){System.out.println("删除成功");
}else {system.out. println("删除失败");
}

2.删除多条数据

//删除数据
MongoCollection<Document> commCol =bbsDB.getCollection("comment");Comment com = new Comment();
com. setContent("专家说空腹不宜吃早餐");Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();Bson bson = Document.parse(gson.toJson(com));DeleteResult deleteMany = commCol.deleteMany(bson);if(deleteMany·getDeletedCount() > 0){System.out.println("删除成功");
}else {System.out.println("删除失败");
}

修改数据

Filters

Filters 过滤器类 为所有的MongoDB的查询操作静态工厂方法。每个方法返回BSON类型,又可以传递给期望一个查询过滤器的任何方法的一个实例。

eq:匹配等于指定值的值。

gt:匹配大于指定值的值。
gte:匹配大于或等于指定值的值。

lt:匹配小于规定值的值。
lte:匹配是小于或等于规定值的值。

ne: 匹配不等于指定值的所有值。

in:匹配任何在数组中指定的值。

nin:没有匹配数组中的规定值。

1.修改一条数据

Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();//修改数据
MongoCollection<Document> commCol = bbsDB.getCollection("comment");//条件
Bson b1 =Filters.eq( "content","专家说空腹不宜吃早餐");
System.out.println(b1);//修改的内容
Comment comup = new Comment();
comup. setLikenum(1);
Bson b2 = newDocument("$inc", Document.parse(gson.toJson(comup)));
system.out.println(b2);//修改一条数据
UpdateResult updateMany =commCol.updateone(b1, b2);System.out.println(updateMany);if(updateMany.getModifiedCount() > 0){System.out.println("修改成功");
}else {System.out.println("修改失败");
}mongoClient.close();

2.修改多条数据

Gson gson = new GsonBuilder().setDateFormat("yyyy-MA-dd HH:mm:ss").create();//修改数据
MongoCollection<Document> commCol = bbsDB.getCollection("comment");//条件
Bson b1 =Filters.eq("content", "专家说空腹不宜吃早餐");
System.out.println(b1);//修改的内容
Comment comup = new Comment();
comup. setLikenum(1);
Bson b2 = new Document("$inc", Document.parse(gson.toJson(comup)));
system.out.println(b2);//修改多条数据
UpdateResult updateMany = commCol.updateMany(b1, b2);
System.out.println(updateMany);if(updateMany.getModifiedCount() > 0){System.out.println("修改成功");
}else {system.out.println("修改失败");
}mongoClient.close();

3.多条件修改数据

Gson gson = new GsonBuilder().setDateFormat( "yyyy-MM-dd HH:mm:ss").create();//修改数据
MongoCollection<Document> commCol = bbsDB.getCollection("comment");//条件
Bson b1 = Filters.and(Filters.eq( "content", "专家说空腹不宜吃早餐"),Filters.Lte( "likenum", 5));
System.out.println(b1);//修改的内容
Comment comup = new Comment();
comup.setLikenum(1);
Bson b2 = new Document("$inc",Document.parse(gson.toJson(comup)));
System.out.println(b2);//修改多条数据
UpdateResult updateMany = commcol.updateMany(b1, b2);
system.out.println(updateMany);if(updateMany.getModifiedCount() > 0) {system.out.print1n("修改成功");
}else {system.out.println("修改失败");
}mongoClient.close();

查询数据

1.全查

MongoCollection<Document> commCol = bbsDB.getcollection("comment");
FindIterable<Document> bbses = commCol.find();
MongoCursor<Document> iterator = bbses.iterator();while(iterator.hasNext()) {System.out.println(iterator.next());
}mongoClient.close();

2.带条件查询

Mongocollection<Document> commCol = bbsDB.getCollection("comment");
Bson b1 = Filters.eq("content", "专家说空腹不宜吃早餐");
FindIterable<Document> bbses = commcol.find(b1);
MongoCursor<Document> iterator = bbses.iterator();while(iterator.hasNext()) {system.out.print1n(iterator.next());
}mongoClient.close();

3.带多个条件查询

MongoCollection<Document> commCol = bbsDB.getcollection("comment");Bson b1 = Filters.and(Filters.eq("content", "专家说空腹不宜吃早餐"),Filters.gte("likenum", 7));FindIterable<Document> bbses = commCol.find(b1);MongoCursor<Document> iterator = bbses.iterator();while(iterator.hasNext()) {system.out. println(iterator.next());
}mongoClient.close();

4.模糊查询

Mongocollection<Document> commCol = bbsDB.getCollection("comment");//使用正则表达式进行模糊查找
Bson b1 = Filters.regex("content", "不能");FindIterable<Document> bbses = commCol.find(b1);MongoCursor<Document> iterator = bbses.iterator();while(iterator.hasNext()) {System.out.println(iterator.next());
}mongoClient.close();

5.分页查询

Mongocollection<Document> commCol = bbsDB.getCollection("comment");//分页查询
FindIterable<Document> bbses = commCol.find().skip(2).limit(3);MongoCursor<Document> iterator = bbses.iterator();while(iterator.hasNext()) {System. out.print1n(iterator.next());
}mongoClient.close();

6.排序查询

MongoCollectionKDocument> commcol = bbsDB.getCollection("comment");//排序1表示升序-1表示降序
Bson b1 = new Document("id", -1);
FindIterable<Document> bbses = commCol.find().sort(b1);
MongoCursor<Document> iterator = bbses.iterator();while(iterator.hasNext()){System.out. println(iterator.next());
}mongoClient.close();

总结

到这里,java对mongoDB的一些基本操作就介绍完了。实现的步骤为:

添加驱动==>连接到服务==>连接到数据库==>选择集合==>对集合进行CRUD操作 

Java操作MongoDB增删改查的基本操作相关推荐

  1. Java原始客户端操作Mongodb 增删改查

    Document方式操作增删改查 1.导入Pom依赖 2.java客户端代码 1.导入Pom依赖 <dependency><groupId>org.mongodb</gr ...

  2. springMVC操作mongoDB增删改查

    下面是mongoDb简单的增删改查(新闻类) 附:query.addCriteria(Criteria.where("modelId").ne("").ne(n ...

  3. nodejs操作mongodb增删改查

    1. Mac系统上安装 使用Homebrew安装 $ brew updata // 更新Homebrew的package数据库 $ brew install mongodb 2. 启动MongoDB ...

  4. 使用Java-Maven操作MongoDB增删改查

    文章目录 1. 环境配置 2. 单元测试 2.1 查询记录 2.2 新增记录 2.3 更新记录 2.4 删除记录 1. 环境配置 pom.xml 依赖 <dependencies>< ...

  5. mongodb android,Android编程连接MongoDB及增删改查等基本操作示例

    本文实例讲述了Android编程连接MongoDB及增删改查等基本操作.分享给大家供大家参考,具体如下: MongoDB简介 Mongodb,分布式文档存储数据库,由C++语言编写,旨在为WEB应用提 ...

  6. 基础的java增删改查,Java基础系列(基础):Java使用Cookie增删改查操作!

    什么是Cookie? Cookie是由W3C组织提出,最早由NetScape社区发展的一种机制. Cookie是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个co ...

  7. java中的数组增删查改操作,java数组实现增删改查

    java 实现动态数组,Java工具类Arrays中不得不知的常用方法,数组实现队列java,java数组实现增删改查 java 增删改查代码 import java.sql.Connection; ...

  8. MongoDB 增删改查

    MongoDB 增删改查 学习目标: 学习内容: 使用步骤 数据库 创建数据库 删除数据库 集合 创建集合 删除集合 文档 查找文档 使用 find()查找文档 使用 findOne()查找文档 使用 ...

  9. 数据库——MongoDB增删改查

    MongoDB增删改查操作 本文包含对数据库.集合以及文档的基本增删改查操作 数据库操作 #1.增 use config #如果数据库不存在,则创建并切换到该数据库,存在则直接切换到指定数据库.#2. ...

最新文章

  1. 服务器可以响应字符类型的数据吗,HTTP - Response
  2. java振动数据压缩_【数据结构-Java】最佳实践-数据压缩(使用赫夫曼树)
  3. [分享]iOS开发-UI篇:CAlayer层的属性
  4. JVM的标配参数和X参数
  5. java 并发 主键_高并发数据库自增主键分析
  6. Linux基础命令---accept打印机控制
  7. ArcGIS水文分析实战教程(14)提取水库湖泊等面状水系
  8. Elo rating system(Elo 打分体系)
  9. java 读取资源文件最详细解读
  10. 【2019华东交通校赛:H】谁在说谎(思维)
  11. python制作卡通表情包_python——简单生成表情包
  12. PID控制电机输出作为电机PWM占空比输入的理解
  13. 工单服务管理系统开发
  14. 清除input自动填充背景色
  15. 【SpringBoot】Error creating bean with name ‘methodValidationPostProcessor‘ defined in class path reso
  16. IO IR 个人作业汇总——康熙
  17. win10专业版没有触摸板选项_Windows10触控板的正确使用方法
  18. solidworks正版多少钱_SOLIDWORKS 2020、2021正版软件价格是多少钱?SW官方报价_专业版和白金版...
  19. python-正则表达式实例
  20. Unity 场景中 模型黑色

热门文章

  1. 第3周作业 #高级编程技术
  2. 【自然语言处理NLP】一文带你了解EMNLP国际会议 EMNLP2022--EMNLP2016 国际顶会论文列表
  3. java 蓝桥杯 黄金队列
  4. RoaringBitMap在ClickHouse和Spark之间的实践-解决数据仓库预计算多维分析问题
  5. Vue + Element+ ASP.NET Core WebAPI 文件上传下载
  6. 背包问题——01背包/完全背包/多重背包
  7. 2. 玩家与电脑玩石头剪刀布游戏,电脑玩家都随机出拳。1---代表石头,2---代表剪刀,3---代表布。程序提示玩家出拳,并判断电脑赢还是玩家赢。
  8. RTSP+RTP协议浅析
  9. javaweb西蒙购物 中
  10. 爱奇艺背后的AI雷达密码