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操作的更多相关文章

  1. Java原生API操作XML

    使用Java操作XML的开源框架比较多,如著名的Dom4J.JDOM等,但个人认为不管你用那个框架都要对JDK原生的API有所了解才能更得心应手的应用.本篇就来简单了解下原生的XML API. JAV ...

  2. 读《分布式一致性原理》JAVA客户端API操作3

    更新数据 客户端可以通过zookeeper的API来更新一个节点的数据内容,有如下两个接口: public Stat setData(final String path, byte data[], i ...

  3. 读《分布式一致性原理》JAVA客户端API操作2

    创建节点 通过客户端API来创建一个数据节点,有一下两个接口: public String create(final String path, byte data[], List<ACL> ...

  4. ES的java端API操作

    首先简单介绍下写这篇博文的背景,最近负责的一个聚合型的新项目要大量使用ES的检索功能,之前对es的了解还只是纯理论最多加个基于postman的索引创建操作,所以这次我得了解在java端如何编码实现:网 ...

  5. mongoDB Java SDK CRUD操作例子

    Example:   package com.sdfwerwer.test; import java.net.UnknownHostException; import com.mongodb.Basi ...

  6. 读《分布式一致性原理》JAVA客户端API操作

    创建会话 客户端可以通过创建一个Zookeeper实例来连接服务器.4种构造方法如下 ZooKeeper(connectString, sessionTimeout, watcher): ZooKee ...

  7. es使用java的api操作

    基本环境的创建 pom依赖  <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&q ...

  8. 1.java soap api操作和发送soap消息

    转自:https://blog.csdn.net/lbinzhang/article/details/84721359 1. /** * soap请求 * * @return * @throws Ex ...

  9. MongoDB Java API操作很全的整理

    MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写,一般生产上建议以共享分片的形式来部署. 但是MongoDB官方也提供了其它语言的客户端操作API.如下图所示: 提供了C.C++ ...

随机推荐

  1. global.fun.php

    <?php /**   所有公共函数文件*/ /**    序列化*/function _serialize($obj){    return base64_encode(gzcompress( ...

  2. HDU5412 CRB and Queries 整体二分

    传送门 刚觉得最近写代码比较顺畅没什么Bug,cdq分治真是我的一个噩梦.. 整体二分模板题,带修改的区间第k小. vjudge不知抽什么风,用不了,hdu忘了密码了一直在那里各种试,难受.. 写得比 ...

  3. git与github建立链接(学习笔记)

    总结步骤: 1.将所有文件添加到本库 git add . 2. git commit -m "提示信息随便写" 3.查看git修改状态 git status 4.获取远程库与本地同 ...

  4. linux把普通用户添加到sudo组

    一.linux下把普通用户添加到sudo组的方式: 1. root权限下, 先cd到/etc目录下 2. 由于sudoers文件为只读权限,所以需要添加写入权限,chmod u+w sudoers 3 ...

  5. CSS 定位 (Positioning)

    CSS 定位 (Positioning) 属性允许你对元素进行定位. CSS 定位和浮动 CSS 为定位和浮动提供了一些属性,利用这些属性,可以建立列式布局,将布局的一部分与另一部分重叠,还可以完成多 ...

  6. Git同账号多平台配置

    最近工作中使用到了Git,虽然以前学习过,但是已经忘的差不多了,遂将本次配置过程整理成笔记以备忘 生成公钥 ssh-keygen -t rsa -C "gana10007@163.com&q ...

  7. VUE.之安装 font-awesome

    VUE.之安装 font-awesome 我们在项目中经常使用各种图标:font-awesome (http://fontawesome.dashgame.com/) 1.npm 安装font-awe ...

  8. 关系数据库标准语言 SQL (ch.3)

    3.1 SQL 概述 3.1.2 特点 1 综合统一 非关系型语言 的数据语言都分为 DDL Scheme Data Definitin Language, 模式DDL SubScheme Data ...

  9. Leetcode54. Spiral Matrix螺旋矩阵

    给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素. 示例 1: 输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ...

  10. 阿里云SaaS生态战略发布:成就亿级营收独角兽

    导语:本文中,阿里云智能资深技术专家黄省江从“势”“道”“术”三个方面分享了自己对于SaaS生态的理解,并介绍了SaaS加速器发布以来在产品.技术和商业侧最新的一些进展. 在321北京峰会上,阿里云公 ...