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集成等. 大型应用通常会按业务拆分成一个个业务子系统,这些大大小小的子应 ...
随机推荐
- css学习_css伪元素的本质
1.伪元素的本质(插入了一个元素(行内元素/标签/盒子) 案例1: 案例2:
- arcmap发布服务报错:“Faild to publish service”
发布gp服务时,Analyze没有重大错误,但是发布结束时提示"Faild to publish service".让人很懵逼: 解决方法: 打开arcgis server man ...
- ES6 模块
概述 在 ES6 前, 实现模块化使用的是 RequireJS 或者 seaJS(分别是基于 AMD 规范的模块化库, 和基于 CMD 规范的模块化库). ES6 引入了模块化,其设计思想是在编译时 ...
- openstack--部暑
##1.Centos7环境准备-- openstack pike ##1.Centos7环境准备-- openstack pike [https://blog.csdn.net/shiyu115775 ...
- [js]变量提升-关于条件
条件函数变量提示于全局中函数变量提升不一样. 条件中: 函数变量提升, 只是声明(现新版本浏览器中) if(g()){ function g() { return true } console.log ...
- MySQL Backup mysqldump备份流程学习
我们都知道MySQL逻辑备份工具mysqldump可以保证备份数据的一致性,但是它是怎么保持一致性的? 本文不讨论mysqldump具体的选项和用法,一直对mysqldump的工作机制梳理的不太清楚, ...
- python 判断两个ip是不是处于同一网段
a_ip:10.10.15.100b_ip:10.10.15.101c_ip:10.10.10.100netmask:255.255.255.0 def numtobinary(num): binar ...
- git----------git:如何让git识别我修改了文件夹名字和文件名字的大小写问题。
修改每个项目里面的隐藏的.git文件里面的config文件.将箭头指的原本是true改成false.
- [macOS] PHP双版本,5.6跟7.1
转过来的,原文看这里,https://www.symfony.fi/page/how-to-run-both-php-5-6-and-php-7-x-with-homebrew-on-os-x-wit ...
- 【css】适配iphoneX
/*适配iphoneX*/ @media only screen and (device-width: 375px) and (device-height: 812px) and (-webkit-d ...