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++ ...
随机推荐
- Javascript-简单的欢迎cookie
0<!DOCT0000YPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml&quo ...
- 2019阿里云开年Hi购季满返活动火热报名中!
摘要: 在每年开年的这个大幅度优惠促销月,怎样才能花最少的钱配置最特惠的云服务?请看本文! 2019阿里云云上采购季活动已经于2月25日正式开启,从已开放的活动页面来看,活动分为三个阶段: 2月25日 ...
- 理解es6箭头函数
箭头函数知识点很少,但是要理解清楚,不然看代码会很不适应的. 1. 最简单的写法 x => x*x 可以理解为 我的x要被转化为x*x,所以实际相当于下边的这个 function (x){ re ...
- 提升mysql服务器性能(分库、分片与监控)
原文:提升mysql服务器性能(分库.分片与监控) 版权声明:皆为本人原创,复制必究 https://blog.csdn.net/m493096871/article/details/90145515 ...
- MySQL--python关联MySQL、练习题
1.python关联MySQL pymysql: 安装:pip3 install pymysql 1.0:连接到数据库中 import pymysql conn = pymysql.connect( ...
- 凸优化 & 1概念
---恢复内容开始--- 放射集合 系数之和为1 相加仍然能在集合内,就是 纺射集合 子空间加一个常熟 就是纺射集合 , 例题2.1 一类特殊的线性方程组的解可以看作纺射 集合 纺射包 aff C 是 ...
- java-异常处理1
概要图 异常讲解流程图 一 java 异常和错误层次图 1.1 图1 1.2 图2 二 异常生的过程 1 异常可以结束函数. 同时也让程序结束了. 三 异常和错误的发生和区别 Java运行时期发生的问 ...
- Struts_改写客户列表练习
1.CustomerAction修改放入ActionContext 2.list.jsp使用struts标签库
- linux系统RabbitMQ启动错误记录
安装并配置好RabbitMq之后终端执行rabbitmq-server报错 试了网上的各种方法也无济于事 最后发现可能是因为访问权限的问题(并不确定) 解决方法:sudo rabbitmq-serve ...
- DirectX11笔记(三)--Direct3D初始化2
原文:DirectX11笔记(三)--Direct3D初始化2 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010333737/article/ ...