Java原生API访问MongoDB
1.pom.xml
- <dependency>
- <groupId>org.mongodb</groupId>
- <artifactId>mongo-java-driver</artifactId>
- <version>3.5.0</version>
- </dependency>
2.Java代码
- package cn.duanjt;
- import java.util.Arrays;
- import org.bson.Document;
- import org.bson.conversions.Bson;
- import org.junit.Before;
- import org.junit.Test;
- import com.mongodb.Block;
- import com.mongodb.MongoClient;
- import com.mongodb.client.FindIterable;
- import com.mongodb.client.MongoCollection;
- import com.mongodb.client.MongoDatabase;
- import com.mongodb.client.result.DeleteResult;
- //注意是静态导入
- import static com.mongodb.client.model.Updates.*;
- import static com.mongodb.client.model.Filters.*;
- public class MongoDB {
- MongoClient client;// mongo连接实例
- MongoDatabase dataBase;// 数据库
- MongoCollection<Document> collection;// 集合,类似于关系型数据库的表
- @Before
- public void init() {
- client = new MongoClient("192.168.23.24", 27022);
- dataBase = client.getDatabase("duanjt");
- collection = dataBase.getCollection("teacher");
- }
- // 插入一条数据
- @Test
- public void insert() {
- Document doc = new Document();
- doc.append("name", "李四");
- doc.append("addr", "重庆");
- doc.append("likes", Arrays.asList("排球", "篮球"));// 数组
- collection.insertOne(doc);// 插入数据时会自动创建数据库和集合
- System.out.println("success");
- }
- // 修改,把李四的爱好修改为 足球和羽毛球
- @Test
- public void update1() {
- Bson eq = eq("name", "张三");
- Bson set = set("likes", Arrays.asList("足球", "羽毛球"));
- collection.updateMany(eq, set);
- System.out.println("修改成功");
- }
- // 修改,把李四的爱好新增 足球和羽毛球
- @Test
- public void update2() {
- Bson eq = eq("name", "李四");
- Bson set = pushEach("likes", Arrays.asList("足球", "羽毛球"));
- collection.updateMany(eq, set);
- System.out.println("修改成功");
- }
- // 查询爱好足球的老师
- @Test
- public void find() {
- Bson filter = in("likes", Arrays.asList("足球"));
- FindIterable<Document> find = collection.find(filter);
- find.forEach(new Block<Document>() {
- @Override
- public void apply(Document t) {
- System.out.println(t.toJson());
- }
- });
- }
- //删除数据
- @Test
- public void delete() {
- Bson filter = eq("name", "duanjt");
- DeleteResult deleteMany = collection.deleteMany(filter);
- System.out.println("删除数据:" + deleteMany.getDeletedCount());
- }
- // 删除集合
- @Test
- public void dropCol() {
- collection.drop();
- System.out.println("删除成功");
- }
- }
稍微注意注释部分的代码即可
MongoDB | 关系型数据库 |
数据库 | 数据库 |
集合 | 表 |
文档 | 一行数据 |
Java原生API访问MongoDB的更多相关文章
- MongoDB最简单的入门教程之五-通过Restful API访问MongoDB
通过前面四篇的学习,我们已经在本地安装了一个MongoDB数据库,并且通过一个简单的Spring boot应用的单元测试,插入了几条记录到MongoDB中,并通过MongoDB Compass查看到了 ...
- Java原生API操作XML
使用Java操作XML的开源框架比较多,如著名的Dom4J.JDOM等,但个人认为不管你用那个框架都要对JDK原生的API有所了解才能更得心应手的应用.本篇就来简单了解下原生的XML API. JAV ...
- 不使用spring的情况下用java原生代码操作mongodb数据库的两种方式
由于更改了mongodb3.0数据库的密码,导致这几天storm组对数据进行处理的时候,一直在报mongodb数据库连接不上的异常. 主要原因实际上是和mongodb本身无关的,因为他们改的是配置 ...
- java 网络API访问 web 站点
package cn.magicdu.think.socket; import java.io.BufferedReader; import java.io.InputStreamReader; im ...
- Structure Streaming和spark streaming原生API访问HDFS文件数据对比
此文已由作者岳猛授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. Structure Stream访问方式 code examples import org.apache.sp ...
- Zookeeper(三)-- JAVA原生API
一.前提 jar包:zookeeper-3.4.9.jar,slf4j-api-1.6.1.jar,slf4j-log4j12-1.6.1.jar,log4j-1.2.15.jar 二.Demo pa ...
- 使用java原生API模拟请求下载文件
/** * * @param urlPath * 下载路径 * @param saveDir * 下载存放目录 * @return 返回下载文件 * @throws Exception */ publ ...
- JAVA API访问Hbase org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=32
Java使用API访问Hbase报错: 我的hbase主节点是spark1 java代码访问hbase的时候写的是ip 结果运行程序报错 不能够识别主机名 修改主机名 修改主机hosts文 ...
- ZooKeeper实现配置中心的实例(原生API实现)(转)
说明:要实现配置中心的例子,可以选择的SDK有很多,原生自带的SDK也是不错的选择.比如使用I0Itec,Spring Boot集成等. 大型应用通常会按业务拆分成一个个业务子系统,这些大大小小的子应 ...
随机推荐
- centOs6.5配置启动ssh
.非root用户则执行su或su - 或su root或su - root切换为root用户 2.查看SSH是否安装(检查是否装了SSH包) 输入命令:rpm -qa | grep ssh 注:若没安 ...
- BeeHive小思考
事件分发和事件处理 将所有行为注册为不同的时间类型,配置Module,让他们在事件发生时,响应这些事件(除了系统的事件,还可以注册自定义事件,触发自定义事件) Module注册之后应当会生成单例对象, ...
- 好用的 over the wall教程
还在为翻 xxx墙苦恼吗,一分钟就能搞定的翻xxx墙教程 1.下载chrome扩展插件 Proxy SwitchyOmega,加入到谷歌的高级扩展程序当中,这个就不详细讲解了. 请戳 https:// ...
- usb_camera
- qt opencv编译错误 /usr/local/lib/libopencv_imgcodecs.so.3.1:-1: error: error adding symbols: DSO missing from command line
转载自:http://tbfungeek.github.io/2016/03/05/Opencv-%E5%AE%89%E8%A3%85%E8%BF%87%E7%A8%8B%E4%B8%AD%E5%87 ...
- 小程序 切换到tabBar页面不刷新问题
小程序跳转的几种方式有wx.navigateTo,wx.redirectTo,wx.reLaunch,wx.switchTab等.下面我们重点研究切换到tabBar的两种方式. wx.switchTa ...
- RPC服务和HTTP服务对比
RPC服务和HTTP服务对比 RPC(即Remote Procedure Call,远程过程调用) 协议区别: RPC主要是基于TCP/IP协议的,而HTTP服务主要是基于HTTP协议的,我们都知道H ...
- Linux平台 Oracle 18c RAC安装Part3:DB配置
四.DB(Database)配置 4.1 解压DB的安装包 4.2 DB软件配置 4.3 ASMCA创建磁盘组 4.4 DBCA建库 4.5 验证crsctl的状态 Linux平台 Oracle 18 ...
- arithmetic-02
Java collection API 中实现的表ADT: collection<E>接口实现继承iterable<E>接口,实现iterable接口的类可以使用增强for循环 ...
- 去掉iframe边框
css样式的border:none来去掉iframe的边框在IE下无效,需给iframe标签添加属性frameborder="no"<iframe frameborder=& ...