mongodb driver使用代码详解

所属分类: 数据库 / MongoDB 阅读数: 177
收藏 0 赞 0 分享

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

0 前言

全是干货的技术殿堂

文章收录在我的 GitHub 仓库,欢迎Star/fork:

Java-Interview-Tutorial

https://github.com/Wasabi1234/Java-Interview-Tutorial

mongodb-driver是mongo官方推出的java连接mongoDB的驱动包,相当于JDBC驱动。我们现在来使用mongodb-driver完成对Mongodb的操作。

1 环境准备

创建工程,并添加以下依赖:

<dependency> 
 <groupId>org.mongodb</groupId> 
 <artifactId>mongodb-driver</artifactId> 
 <version>3.10.1</version> 
</dependency>

2 使用mongodb-driver

2.1 查询所有

@Test 
public void test1() { 
 //创建连接 
 MongoClient client = new MongoClient("192.168.200.128");
 //打开数据库 
 MongoDatabase commentdb = client.getDatabase("commentdb"); 
 //获取集合 
 MongoCollection<Document> comment = commentdb.getCollection("comment"); 
 //查询 
 FindIterable<Document> documents = comment.find(); 
 //查询记录获取文档集合 
 for (Document document : documents) { 
 System.out.println("_id:" + document.get("_id")); 
 System.out.println("内容:" + document.get("content")); 
 System.out.println("用户ID:" + document.get("userid")); 
 System.out.println("点赞数:" + document.get("thumbup")); }
 //关闭连接 
 client.close(); 
 }
 } 

2.2 根据_id查询

每次使用都要用到MongoCollection,进行抽取:

private MongoClient client; 
private MongoCollection<Document> comment; 
@Before 
public void init() { 
 //创建连接 
 client = new MongoClient("192.168.200.128"); 
 //打开数据库 
 MongoDatabase commentdb = client.getDatabase("commentdb"); 
 //获取集合 
 comment = commentdb.getCollection("comment"); 
}
@After 
public void after() { 
 client.close(); 
}
@Test public void test2() { 
 //查询 
 FindIterable<Document> documents = comment.find(new BasicDBObject("_id", "1")); 
 //查询记录获取文档集合 
 for (Document document : documents) { 
 System.out.println("_id:" + document.get("_id")); 
 System.out.println("内容:" + document.get("content")); 
 System.out.println("用户ID:" + document.get("userid")); 
 System.out.println("点赞数:" + document.get("thumbup")); 
 } 
}

2.3 新增

@Test public void test3() { 
 Map<String, Object> map = new HashMap(); 
 map.put("_id", "6"); 
 map.put("content", "很棒!"); 
 map.put("userid", "9999"); 
 map.put("thumbup", 123); 
 Document document = new Document(map); 
 comment.insertOne(document); 
}

2.4 修改

@Test public void test4() { 
 //修改的条件 
 Bson filter = new BasicDBObject("_id", "6"); 
 //修改的数据 
 Bson update = new BasicDBObject("$set", new Document("userid", "8888"));
 comment.updateOne(filter, update); 
}

2.5 删除

@Test public void test5() { 
 //删除的条件 
 Bson filter = new BasicDBObject("_id", "6"); 
 comment.deleteOne(filter); 
}

MongoDB优势与劣势

优势:

1、在适量级的内存的MongoDB的性能是非常迅速的,它将热数据存储在物理内存中,使得热数据的读写变得十分快。
2、MongoDB的高可用和集群架构拥有十分高的扩展性。
3、在副本集中,当主库遇到问题,无法继续提供服务的时候,副本集将选举一个新的主库继续提供服务。
4、MongoDB的Bson和JSon格式的数据十分适合文档格式的存储与查询。

劣势:

1、 不支持事务操作。MongoDB本身没有自带事务机制,若需要在MongoDB中实现事务机制,需通过一个额外的表,从逻辑上自行实现事务。
2、 应用经验少,由于NoSQL兴起时间短,应用经验相比关系型数据库较少。
3、MongoDB占用空间过大。

更多精彩内容其他人还在看

MongoDB插入、更新、删除文档实现代码

本文通过实例代码给大家简单介绍了mongodb插入、更新、删除文档的方法,需要的的朋友参考下吧
收藏 0 赞 0 分享

mongodb 修改器($inc/$set/$unset/$push/$pop/upsert)

对于文档的更新除替换外,针对某个或多个文档只需要部分更新可使用原子的更新修改器,能够高效的进行文档更新。更新修改器是中特殊的键
收藏 0 赞 0 分享

mongodb 数据类型(null/字符串/数字/日期/内嵌文档/数组等)

MongoDB的文档类似于JSON,JSON只是一种简单的表示数据的方式,只包含了6种数据类型(null、布尔、数字、字符串、数组及对象),需要的朋友可以参考下
收藏 0 赞 0 分享

MongoDB的创建、更新和删除

下面开始学习MongoDB最重要也是最基础的部分:C(创建)R(查询)U(更新)D(删除);由于R(查询)操作相对来说内容比较多,也比较繁琐,同时使用频率也比较高,所以下一篇会拿出来单独介绍。废话不多说,连上服务器,我们直接进入正题
收藏 0 赞 0 分享

MongoDB的下载、安装与部署方法

这篇文章主要介绍了MongoDB的下载、安装与部署方法,需要的朋友可以参考下
收藏 0 赞 0 分享

MongoDB的基础知识简介

这篇文章主要介绍了MongoDB的基础知识简介,需要的朋友可以参考下
收藏 0 赞 0 分享

MongoDB的查询方法

这篇文章主要介绍了MongoDB的查询方法,需要的朋友可以参考下
收藏 0 赞 0 分享

MongoDB的索引

数据库中的索引就是用来提高查询操作的性能,但是会影响插入、更新和删除的效率,因为数据库不仅要执行这些操作,还要负责索引的更新
收藏 0 赞 0 分享

MongoDB数据查询方法干货篇

查询操作在我们日常操作数据库的时候是必不可少的一部分,最近有些空闲时间,所有就将MongoDB数据查询的一些方法技巧总结了处理,这篇文章主要介绍了MongoDB数据查询的相关资料,需要的朋友可以参考借鉴,一起来看看吧。
收藏 0 赞 0 分享

MongoDB数据更新方法干货篇

之前给大家分享了MongoDB中数据查询的相关方法和技巧,那么下面这篇文章主要给大家介绍了MongoDB中数据更新方法的相关资料,文中给出了详细的示例代码,需要的朋友可以参考借鉴,下面来一起看看吧。
收藏 0 赞 0 分享
查看更多