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数据库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
关于spring项目中无法加载resources下文件问题及解决方法
在学习Spring过程中,TestContext框架试图检测一个默认的XML资源位置,再resources下创建了一个com.example的文件夹,执行时,报错,本文给大家介绍spring项目中无法加载resources下文件,感兴趣的朋友跟随小编一起看看吧2023-10-10在Spring Boot中集成RabbitMQ详细步骤(最新推荐)
本文将介绍如何在Spring Boot项目中集成RabbitMQ,实现生产者和消费者的基本配置,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧2023-12-12SpringBoot集成WebSocket实现后台向前端推送信息的示例
这篇文章主要介绍了SpringBoot集成WebSocket实现后台向前端推送信息的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-12-12
最新评论