MongoDB -- JAVA基本API操作
package com.example.mongodb.mongodb.demo; import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoIterable;
import org.bson.Document; import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import static com.mongodb.client.model.Filters.*; /**
* @author <a herf="mailto:yanwu0527@163.com">XuBaofeng</a>
* @date 2019-07-01 14:52.
* <p>
* description:
*/
public class MongoDbJdbc {
/*** 地址 */
private static final String MONGODB_ADDRESS = "127.0.0.1";
/*** 端口 */
private static final Integer MONGODB_PORT = 27017;
/*** 数据库 */
private static final String DATABASE_NAME = "yanwu";
/*** 集合 */
private static final String COLLECTION_NAME = "java";
/*** 连接 */
private static MongoClient mongoClient;
/*** 数据库 */
private static MongoDatabase database;
/*** 集合 */
private static MongoCollection<Document> collection; public static void main(String[] args) {
// ----- 建立连接
newMongoClient();
// ----- 查看所有数据库
listDatabases();
// ----- 选择数据库
getDatabase();
// ----- 创建集合
createCollection();
// ----- 获取集合
getCollection();
// ----- 插入文档
insert();
// ----- 更新文档
update();
// ----- 删除文档
delete();
// ----- 检索所有文档
findAll();
// ----- 条件查找 (匹配)
findByEq();
// ----- 条件查找 [小于]
findByLt();
// ----- 条件查找 [小于等于]
findByLte();
// ----- 条件查找 [大于]
findByGt();
// ----- 条件查找 [大于等于]
findByGte();
// ----- 条件查找 [and]
findByAnd();
// ----- 条件查找 [or]
findByOr();
} /**
* 建立连接
*/
private static void newMongoClient() {
System.out.println("==================== newMongoClient ====================");
mongoClient = new MongoClient(MONGODB_ADDRESS, MONGODB_PORT);
} /**
* 查看所有数据库
*/
private static void listDatabases() {
System.out.println("==================== listDatabases ====================");
MongoIterable<String> names = mongoClient.listDatabaseNames();
for (String mane : names) {
System.out.println(mane);
}
} /**
* 获取数据库
*/
private static void getDatabase() {
System.out.println("==================== getDatabase ====================");
database = mongoClient.getDatabase(DATABASE_NAME);
} /**
* 创建集合
*/
private static void createCollection() {
System.out.println("==================== createCollection ====================");
database.createCollection(COLLECTION_NAME);
} /**
* 获取集合
*/
private static void getCollection() {
System.out.println("==================== getCollection ====================");
collection = database.getCollection(COLLECTION_NAME);
} /**
* 插入文档
*/
private static void insert() {
System.out.println("==================== insert ====================");
// ----- 插入一条文档
Document document = new Document().append("title", "java").append("desc", "JAVA是我的衣食父母").append("by", "yanwu")
.append("tage", Collections.singletonList("java")).append("likes", 200);
collection.insertOne(document);
// ----- 插入多条文档
List<Document> documents = new ArrayList<>(); Document document1 = new Document().append("title", "php").append("desc", "PHP是世界上最好的语言").append("by", "yanwu")
.append("tage", Collections.singletonList("php")).append("likes", 100);
documents.add(document1); Document document2 = new Document().append("title", "python").append("desc", "python是人工智能的未来").append("by", "yanwu")
.append("tage", Collections.singletonList("python")).append("likes", 250);
documents.add(document2); Document document3 = new Document().append("title", "mongodb").append("desc", "学习学习").append("by", "yanwu")
.append("tage", Collections.singletonList("mongodb")).append("likes", 150);
documents.add(document3); collection.insertMany(documents);
} /**
* 检索所有文档
*/
private static void findAll() {
System.out.println("==================== findAll ====================");
// ----- 拿到该集合中所有的文档
print(collection.find());
} /**
* 更新文档
*/
private static void update() {
System.out.println("==================== update ====================");
collection.updateMany(eq("title", "java"), new Document("$set", new Document("title", "java语言")));
} /**
* 删除文档
*/
private static void delete() {
System.out.println("==================== delete ====================");
// ----- 删除一个
collection.deleteOne(eq("title", "java"));
findAll();
// ----- 删除多个
collection.deleteMany(eq("by", "yanwu"));
findAll();
} /**
* 条件查找 (匹配)
*/
private static void findByEq() {
System.out.println("==================== findByEq: likes == 200 ====================");
print(collection.find(eq("likes", 200)));
} /**
* 条件查找 [小于]
*/
private static void findByLt() {
System.out.println("==================== findByLt: likes < 200 ====================");
print(collection.find(lt("likes", 200)));
} /**
* 条件查找 [小于等于]
*/
private static void findByLte() {
System.out.println("==================== findByLte: likes <= 200 ====================");
print(collection.find(lte("likes", 200)));
} /**
* 条件查找 [大于]
*/
private static void findByGt() {
System.out.println("==================== findByGt: likes > 200 ====================");
print(collection.find(gt("likes", 200)));
} /**
* 条件查找 [大于等于]
*/
private static void findByGte() {
System.out.println("==================== findByGte: likes >= 200 ====================");
print(collection.find(gte("likes", 200)));
} /**
* 条件查找 [and]
*/
private static void findByAnd() {
System.out.println("==================== findByGte: likes > 150 && likes < 250 ====================");
print(collection.find(and(gt("likes", 150), lt("likes", 250))));
} /**
* 条件查找 [or]
*/
private static void findByOr() {
System.out.println("==================== findByGte: likes < 150 || likes > 200 ====================");
print(collection.find(or(lt("likes", 150), gt("likes", 200))));
} /**
* 打印输出文档集合
*/
private static void print(FindIterable<Document> documents) {
for (Document document : documents) {
System.out.println(document.toJson());
}
}
}
更多详情可以查看: http://mongodb.github.io/mongo-java-driver/3.0/driver/getting-started/
MongoDB -- JAVA基本API操作的更多相关文章
- Java原生API操作XML
使用Java操作XML的开源框架比较多,如著名的Dom4J.JDOM等,但个人认为不管你用那个框架都要对JDK原生的API有所了解才能更得心应手的应用.本篇就来简单了解下原生的XML API. JAV ...
- 读《分布式一致性原理》JAVA客户端API操作3
更新数据 客户端可以通过zookeeper的API来更新一个节点的数据内容,有如下两个接口: public Stat setData(final String path, byte data[], i ...
- 读《分布式一致性原理》JAVA客户端API操作2
创建节点 通过客户端API来创建一个数据节点,有一下两个接口: public String create(final String path, byte data[], List<ACL> ...
- ES的java端API操作
首先简单介绍下写这篇博文的背景,最近负责的一个聚合型的新项目要大量使用ES的检索功能,之前对es的了解还只是纯理论最多加个基于postman的索引创建操作,所以这次我得了解在java端如何编码实现:网 ...
- mongoDB Java SDK CRUD操作例子
Example: package com.sdfwerwer.test; import java.net.UnknownHostException; import com.mongodb.Basi ...
- 读《分布式一致性原理》JAVA客户端API操作
创建会话 客户端可以通过创建一个Zookeeper实例来连接服务器.4种构造方法如下 ZooKeeper(connectString, sessionTimeout, watcher): ZooKee ...
- es使用java的api操作
基本环境的创建 pom依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&q ...
- 1.java soap api操作和发送soap消息
转自:https://blog.csdn.net/lbinzhang/article/details/84721359 1. /** * soap请求 * * @return * @throws Ex ...
- MongoDB Java API操作很全的整理
MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写,一般生产上建议以共享分片的形式来部署. 但是MongoDB官方也提供了其它语言的客户端操作API.如下图所示: 提供了C.C++ ...
随机推荐
- POSTMAN调试接口post对象
APP回传设备信息,设备信息对象里边包含以下字段 后台是java ssh接收 用对象属性自动封装比较方便 所以,使用 方式进行回传 而不是使用网上说的 设置如下图
- 索尼微单cmos坏点屏蔽
偶然发现相机有坏点了,果断去售后换了一台回来.然后试机,吐血 要不是我旧机器满是岁月的痕迹,我真以为原封给我退回来了 这样不行啊,难道再换一个回来?毕竟是脸皮薄的人.不好意思操作啊. 于是上网找找,果 ...
- Mac下载Navicat premium提示文件损坏的解决方案
首先打开终端,执行: sudo bash 这时会提示你输入你的账户密码, 输入完后就切换到了 root 用户,然后执行: xattr -cr /Applications/Navicat\ Premiu ...
- MYSQL基础常识
所有的数据库名.表名.表字段都是区分大小写的.所以在使用mysql命令时需要输入正确的名称 MYSQL命令终止符是分号; 1.MYSQL的连接:mysql -u root -p(\q或exit退出); ...
- Spring Boot邮件功能
1.应用场景 邮件功能的应用场景可谓十分广泛,诸如注册用户.密码找回,消息通知.以及一些程序异常通知等都需要使用到该功能. 正是由于邮件功能的使用广泛,因此springboot也加在它的组件中添加了邮 ...
- bzoj3064/洛谷P4314 CPU监控【线段树】
好,长草博客被催更了[?] 我感觉这题完全可以当作线段树3 线段树2考加法和乘法标记的下放顺序,这道题更丧心病狂[?] 很多人可能跟我一样,刚看到这道题秒出思路:打一个当前最大值一个历史最大值不就完事 ...
- linux显示进程的内存映射pmap
pmap命令可以显示进程的内存映射,使用这个命令可以找出造成内存瓶颈的原因. # pmap -d PID 显示PID为47394进程的内存信息. # pmap -d 47394 输出样例: 47394 ...
- ubuntu上用源码进行一键安装mysql
首先卸载原有的mysql: 首先查看自己的mysql有哪些依赖 #dpkg --list|grep mysql 先卸载 #sudo apt-get remove mysql-common #sud ...
- 【python之路9】类型定义与转换
一.整型(int),int的作用 1.创建int类型并赋值 n = 10 或者 n = int(10) #只要是类名加括号,都会去执行类中的 __init__()方法 n = 10,实际内部会去执 ...
- npm上面实用的第三方工具包
npm上面实用的第三方工具包 live-server 作用:为页面提供实时刷新重载的功能,并且能提供一个http服务器 官方地址:https://www.npmjs.com/package/live- ...