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++ ...
随机推荐
- c++新特性实验(3)声明与定义:constexpr
1.作用 constexpr 声明一个函数或变量,它的值可以在编译时出现在常量表达式之中. 2.constexpr 变量要求 其类型必须是 字面类型 (LiteralType) . 它必须被立即初始化 ...
- Python中的一些模块用法
python中os模块用法 python之模块之shutil模块 -------------------------------os模块-------------------------------- ...
- Django项目:CRM(客户关系管理系统)--26--18PerfectCRM实现King_admin搜索关键字
search_fields = ('name','qq',) 登陆密码设置参考 http://www.cnblogs.com/ujq3/p/8553784.html search_fields = ( ...
- mysql_example
package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysq ...
- mysql与hibernate选择某个字段的最大值,比如表中的最大id
hibernate public int getMaxId(Session session) { String hql = "SELECT MAX(id) FROM ArticleModel ...
- Vue. 之 Element table 单元格内容隐藏
Vue. 之 Element table 单元格内容隐藏 在table显示数据时,若某个单元格的内容过多,需要进行隐层,在这一列的单元格属性添加::show-overflow-tooltip=&quo ...
- python 常见分布的产生方式
- 强强联合 阿里云 RDS for SQL Server 与 金蝶 K/3 WISE 产品实现兼容适配
强强联合 阿里云 RDS for SQL Server 与 金蝶 K/3 WISE 产品实现兼容适配,原K/3 WISE用户通过简单配置就可以无缝搭配RDS SQL Server使用,不需再费时费力自 ...
- js判断类型为数字的方法实现总汇——原生js判断isNumber()
方法一[推荐]: 最容易想到的是用typeof来判断是否是number类型 ,但是如果为NaN会被认为也是number类型,因此我们需要使用isNaN来排除NaN的情况. function isNum ...
- JDK8 Stream 数据流效率分析
JDK8 Stream 数据流效率分析 Stream 是Java SE 8类库中新增的关键抽象,它被定义于 java.util.stream (这个包里有若干流类型: Stream<T> ...