JAVA操作MongoDB数据库实例教程

 更新时间:2023年05月25日 11:41:32   作者:快去吃姜  
MongoDB是一个文档型数据库,是NOSQL家族中最重要的成员之一,下面这篇文章主要给大家介绍了关于JAVA操作MongoDB数据库的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

前言:

mongodb是一个基于分布式文件存储的开源数据库系统。

mongodb与我们平常使用的mysql的区别:

   1.MySQL以表结构存储数据,mongodb以类JSON的文档的格式存储

   2.MySQL支持表联查,mongodb不支持表联查。

   3.MySQL是关系型数据库,而mongodb是非关系型数据库

   4.MySQL可以支持事务,外键等,而mongodb不支持

mysql中的概念MongoDB中的概念解释tablecollention表/集合rowdocument行/文档columnfield字段indexindex索引primary keyprimary key主键,mongo中每个documentdou默认有_id字段为主键

一.java链接mongodb

1.导入mongodb驱动包

2.创建链接对象

MongoClient mongoclient=new MongoClient("127.0.0.1",27017);

3.释放资源

mongoclient.close();

二.查看数据库的所有库和集合

1.查看所有库名

//获取链接对象,参数1为url,参数2为端口号
MongoClient mongoclient=new MongoClient("127.0.0.1",27017);
//获取所有库名的迭代器
MongoIterable<String> list= mongoclient.listDatebaseNames();
for(String str:list){
    System.out.println(str);//查看所有库名
}

2.查看所有集合名

//获取链接对象,参数1为url,参数2为端口号
MongoClient mongoclient=new MongoClient("127.0.0.1",27017);
//获取库对象,参数为库名
MongoDatabase db=mongoclient.getDatabase("school");
//获取当前库对象的所有集合名的迭代器
MongoIterable<String> list=db.getlistCollectionNames();
for(String str:list){
    System.out.println(str);//获取所有集合名
}
//获取集合对象,参数为集合名
MongoCollention<Document> collection=db.getCollection("student");

三.对数据库进行增删改查

1.新增数据

//获取集合对象
MongoCollection<Document> collection = db.getCollection("student");
//新增时创建一个Docuement对象,以键值对的形式传入内容
Document document = new Document();
document.put("name", "张三");
document.put("age", 99);
document.put("sex", "男");
//添加一条数据,没有返回值
collection.insertOne(document);
//新增多条数据,传入一个document集合
collection.insertMany(null);

Filters类(过滤器) 

        删除,修改,查询时传入的筛选条件

        举例: Bson eq=Filters.eq("name","张三");

Filters.eq()等值
Filters.gt()大于指定值(gte大于等于)
Filters.lt()小于指定值(lte小于等于)
Filters.ne()不等于指定
Filters.nin()不等于数组中的值
Filters.and()传入多个Bson对象,and连接
Filters.regex()模糊查询
Filters.exists()存在改字段

2.修改数据

 
//修改条件
Bson eq = Filters.eq("name","张三");
//修改匹配到的第一条
UpdateResult updateOne = collection.updateOne(
	eq, new Document("$set",new Document("age",50)));
//修改匹配的多条
collection.updateMany(eq, null);

修改的返回值内容

AcknowledgedUpdateResult{matchedCount=0, modifiedCount=0, upsertedId=null}

matchedCount:代表匹配到的文档数

modifiedCount:代表被修改的文档数

upsertedId:代表修改的文档id(主键)

3.数据删除

//条件
Bson eq = Filters.eq("name","张三");
//删除一条符合的
DeleteResult deleteOne = collection.deleteOne(eq);
//删除 所有符合条件的
DeleteResult deleteMany = collection.deleteMany(eq);

删除的返回值内容

AcknowledgedDeleteResult{deletedCount=0}

deletedCount:被删除的文档数

4.查询数据

//无条件全查
FindIterable<Document> find = collection.find();
//带条件查询
Bson eq = Filters.regex("name", "张");
FindIterable<Document> find = collection.find(eq);

查询的结果集映射

 这种解析方式我们必须知道文档中的各个字段名

//全查
FindIterable<Document> find = collection.find();
//创建一个实体类集合准备接收结果
List<Student>  slist = new ArrayList<Student>();
//获取结果集迭代器对象	
MongoCursor<Document> iterator = find.iterator();
while(iterator.hasNext()) {
	Student s =  new Student();
	Document next = iterator.next();
	s.setSname(next.getString("name"));
	s.setSsex(next.getString("sex"));
	s.setSid(next.getInteger("sid"));	
    //将结果添加至实体类集合
	slist.add(s);
}

总结

到此这篇关于JAVA操作MongoDB数据库的文章就介绍到这了,更多相关JAVA操作MongoDB数据库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java设计模式之备忘录模式_动力节点Java学院

    Java设计模式之备忘录模式_动力节点Java学院

    我们在编程的时候,经常需要保存对象的中间状态,当需要的时候,可以恢复到这个状态。接下来通过本文给大家分享java设计模式之备忘录模式,感兴趣的的朋友一起看看吧
    2017-08-08
  • JVM代码缓存区CodeCache原理及用法解析

    JVM代码缓存区CodeCache原理及用法解析

    这篇文章主要介绍了JVM代码缓存区CodeCache原理及用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • JWT令牌的工作原理详解

    JWT令牌的工作原理详解

    这篇文章主要介绍了JWT令牌的工作原理详解,在认证的时候,当用户用他们的的凭证成功登录以后,一个JSON Web Token将会被返回,此后,用户名和密码就不再是用户的凭证,而token是用户用来访问资源的新凭证了,需要的朋友可以参考下
    2023-08-08
  • 关于spring项目中无法加载resources下文件问题及解决方法

    关于spring项目中无法加载resources下文件问题及解决方法

    在学习Spring过程中,TestContext框架试图检测一个默认的XML资源位置,再resources下创建了一个com.example的文件夹,执行时,报错,本文给大家介绍spring项目中无法加载resources下文件,感兴趣的朋友跟随小编一起看看吧
    2023-10-10
  • Mybatis-plus 查询条件为空不生效问题及解决

    Mybatis-plus 查询条件为空不生效问题及解决

    这篇文章主要介绍了Mybatis-plus 查询条件为空不生效问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • Java 中的位运算与移位运算详解

    Java 中的位运算与移位运算详解

    这篇文章主要为大家介绍了Java 中的位运算与移位运算,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • Java使用TCP实现数据传输实例详解

    Java使用TCP实现数据传输实例详解

    这篇文章主要介绍了Java使用TCP实现数据传输实例详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • Spring框架基于注解开发CRUD详解

    Spring框架基于注解开发CRUD详解

    这篇文章主要为大家详细介绍了Spring框架基于注解开发CRUD,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • 在Spring Boot中集成RabbitMQ详细步骤(最新推荐)

    在Spring Boot中集成RabbitMQ详细步骤(最新推荐)

    本文将介绍如何在Spring Boot项目中集成RabbitMQ,实现生产者和消费者的基本配置,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-12-12
  • SpringBoot集成WebSocket实现后台向前端推送信息的示例

    SpringBoot集成WebSocket实现后台向前端推送信息的示例

    这篇文章主要介绍了SpringBoot集成WebSocket实现后台向前端推送信息的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12

最新评论