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集成等. 大型应用通常会按业务拆分成一个个业务子系统,这些大大小小的子应 ...
随机推荐
- 构建一个可以统计 qps 的nginx服务的Dockerfile
github 项目地址: https://github.com/SilentCC/nginx_lua_qps_count nginx 是经常会用到的web 服务器,它有出色的并发性能,因此尝尝被用来当 ...
- nessus无法访问https://localhost:8834/#/,解决方法。
之前没弄明白为啥经常访问不了https://localhost:8834/#/,后面才发现是服务关闭了. 首先netstat -an 查看8834是否开启, 直接运行一下nessus目录下的nessu ...
- Python字符串拼接的6种方法(转)
add by zhj: 对于多行字符串连接,第6种连接方法很方便,连接时不会添加额外的空格. 原文:http://www.cnblogs.com/bigtreei/p/7892113.html 1. ...
- SQL Server 2008中的CDC(Change Data Capture)功能使用及释疑
SQL Server 2008中的CDC(Change Data Capture)功能使用及释疑 关键词:CDC 原文:http://www.cnblogs.com/chenxizhang/arc ...
- 猪年设计素材:一波免费猪猪icon已为你备好
马上就要步入猪年,设计圈里又要出现一波可爱的猪猪崽.快来收藏一波吧~ 先来看看下面几只尝尝鲜吧!墨刀准备了141个svg格式的猪猪icon,拉到文末免费获取哦! 猪年日历 (2019 Pig Cale ...
- Centos安装Oracle及问题处理
安装Oracle前准备 创建运行oracle数据库的系统用户和用户组 [jonathan@localhost ~]$ su root #切换到root Password: [root@localhos ...
- UValive4195 Heroes of Money and Magic
斜率优化 想骂人了,马格吉最后调了半小时 TMD造数据的人是SB吧? 我写 while(scanf("%d%d",&n,&m)!=EOF&&n) ...
- Android项目开发第二天,关于GitHub
一. 今天在网上学习了如何使用GitHub,了解了GitHub是干什么的. 作为开源代码库以及版本控制系统,Github拥有超过900万开发者用户.随着越来越多的应用程序转移到了云上,Github已经 ...
- webform ajax 异步请求
第一种就是对应方法的请求 虽然对应方法 但还是会刷新页面 webform是基于事件的 每次请求都会出发pageload <script> $(function () { $("# ...
- L1-049. 天梯赛座位分配
天梯赛每年有大量参赛队员,要保证同一所学校的所有队员都不能相邻,分配座位就成为一件比较麻烦的事情.为此我们制定如下策略:假设某赛场有 N 所学校参赛,第 i 所学校有 M[i] 支队伍,每队 10 位 ...