MongoDB Java(七)
在 Java 程序中如果要使用 MongoDB,你需要确保已经安装了 Java 环境及 MongoDB JDBC 驱动。
mongodb-driver jar 下载地址:http://central.maven.org/maven2/org/mongodb/mongo-java-driver/
操作文档:http://mongodb.github.io/mongo-java-driver/3.0/driver/getting-started/quick-tour/
或mave pom.xml
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.10.2</version>
</dependency>
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoIterable;
import com.mongodb.client.model.Filters;
import com.mongodb.client.model.Sorts; /**
* mongo-java-driver 基础操作
*/
public class StandaloneMongodbDoc {
/*** 地址 */
private static final String MONGODB_ADDRESS = "192.168.178.6";
/*** 端口 */
private static final Integer MONGODB_PORT = 27017;
/*** 集合名称 */
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) {
// 建立连接
newConnection();
// 查询所有数据库
listDataBaseNames();
// 获取数据库
getDataBase();
// 创建集合
createCollection();
// 获取集合
getCollection();
// 插入文档
insertDoc();
// 检索所有文档
findAllDoc();
// 更新文档
updateDoc();
// 删除文档
removeDoc();
// 条件查找 (匹配)
findByEq();
//条件查找 [小于]
findByLt();
//条件查找 [小于等于]
findByLte();
//条件查找 [大于]
findByGt();
//条件查找 [大于等于]
findByGte();
//条件查找 [and]
findByAnd();
//条件查找 [or]
findByOr();
//排序[降序]
sortDoc(); } private static void newConnection() {
System.out.println("==================== newMongoClient ====================");
mongoClient = new MongoClient(MONGODB_ADDRESS, MONGODB_PORT);
} private static void listDataBaseNames() {
System.out.println("==================== listDatabases ====================");
MongoIterable<String> databaseNames = mongoClient.listDatabaseNames();
for (String dbName : databaseNames) {
System.out.println(dbName);
}
} private static void getDataBase() {
System.out.println("==================== getDatabase ====================");
database = mongoClient.getDatabase("mydb");
} 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 insertDoc() {
System.out.println("==================== insertDoc ====================");
// 插入一条文档
Document doc = new Document("name", "MongoDB").append("type", "database").append("count", 1).append("info",
new Document("x", 203).append("y", 102));
collection.insertOne(doc);
// 插入多条文档
List<Document> documents = new ArrayList<Document>();
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); // 计算文档数量
System.out.println(collection.countDocuments()); } private static void findAllDoc() {
System.out.println("==================== findAllDoc ====================");
print(collection.find());
} private static void updateDoc() {
System.out.println("==================== updateDoc ====================");
collection.updateMany(Filters.eq("title", "java"), new Document("$set", new Document("title", "java语言")));
// 类似于 update java set title='java语言' where title='java';
findAllDoc();
} private static void removeDoc() {
System.out.println("==================== removeDoc ====================");
// 删除一个文档
collection.deleteOne(Filters.eq("title", "java"));
findAllDoc();
// 删除多个文档
collection.deleteMany(Filters.eq("by", "yanwu"));
findAllDoc();
} private static void findByEq() {
System.out.println("==================== findByEq: likes == 200 ====================");
print(collection.find(Filters.eq("likes", 200)));
} private static void findByLt() {
System.out.println("==================== findByLt: likes < 200 ====================");
print(collection.find(Filters.lt("likes", 200)));
} private static void findByLte() {
System.out.println("==================== findByLte: likes <= 200 ====================");
print(collection.find(Filters.lte("likes", 200)));
} private static void findByGt() {
System.out.println("==================== findByGt: likes > 200 ====================");
print(collection.find(Filters.gt("likes", 200)));
} private static void findByGte() {
System.out.println("==================== findByGte: likes >= 200 ====================");
print(collection.find(Filters.gte("likes", 200)));
} private static void findByAnd() {
System.out.println("==================== findByGte: likes > 150 && likes < 250 ====================");
print(collection.find(Filters.and(Filters.gt("likes", 150), Filters.lt("likes", 250))));
} private static void findByOr() {
System.out.println("==================== findByGte: likes < 150 || likes > 200 ====================");
print(collection.find(Filters.or(Filters.lt("likes", 150), Filters.gt("likes", 200))));
} private static void sortDoc(){
System.out.println("==================== sortDoc ====================");
//Sorts.descending 表示降序
collection.find(Filters.exists("likes")).sort(Sorts.descending("likes")).first();
} /**
* 方式一:打印输出文档集合
*/
private static void print(FindIterable<Document> documents) {
for (Document document : documents) {
System.out.println(document.toJson());
}
} /**
* 方式二:打印输出文档集合
*/
private static void printByCursor(FindIterable<Document> documents) {
MongoCursor<Document> cursor = documents.iterator();
try {
while (cursor.hasNext()) {
System.out.println(cursor.next().toJson());
}
} finally {
cursor.close();
}
} }
MongoDB Java(七)的更多相关文章
- MongoDB Java Driver操作指南
MongoDB为Java提供了非常丰富的API操作,相比关系型数据库,这种NoSQL本身的数据也有点面向对象的意思,所以对于Java来说,Mongo的数据结构更加友好. MongoDB在今年做了一次重 ...
- Mongodb Java Driver 参数配置解析
要正确使用Mongodb Java Driver,MongoClientOptions参数配置对数据库访问的并发性能影响极大. connectionsPerHost:与目标数据库能够建立的最大conn ...
- mongoDb +Java+springboot
前言 :mongoDb 是一种比较常用的非关系数据库,文档数据库, 格式为json ,redis 有五种格式. 1. 项目中要使用,这里简单做个示例.首先是连接mongoDB,用的最多的robomon ...
- BuguMongo是一个MongoDB Java开发框架,集成了DAO、Query、Lucene、GridFS等功能
http://code.google.com/p/bugumongo/ 简介 BuguMongo是一个MongoDB Java开发框架,它的主要功能包括: 基于注解的对象-文档映射(Object-Do ...
- 数据库.MongoDB.Java样例
1.先在MongoDB官网下载Java驱动包 MongoDB Java Driver: http://mongodb.github.io/mongo-java-driver/ JAR包下载列表 htt ...
- MongoDB Java
MongoDB Java 环境配置 在Java程序中如果要使用MongoDB,你需要确保已经安装了Java环境及MongoDB JDBC 驱动. 你可以参考本站的Java教程来安装Java程序.现在让 ...
- mongodb Java(八)
package com.mongodb.text; import java.net.UnknownHostException; import com.mongodb.DB; import com.mo ...
- MongoDB Java API操作很全的整理
MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写,一般生产上建议以共享分片的形式来部署. 但是MongoDB官方也提供了其它语言的客户端操作API.如下图所示: 提供了C.C++ ...
- 三、Mongodb Java中的使用
添加maven依赖 <!--mongodb 驱动--> <dependency> <groupId>org.mongodb</groupId> < ...
- MongoDB Java连接---MongoDB基础用法(四)
MongoDB 连接 标准 URI 连接语法: mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN ...
随机推荐
- MySQL执行状态的查看与分析
当感觉mysql性能出现问题时,通常会先看下当前mysql的执行状态,使用 show processlist 来查看,例如: 其中state状态列信息非常重要,先看下各列含义,然后看下state常用状 ...
- Java Web 学习(4) —— Spring MVC 概览
Spring MVC 概览 一. Spring MVC Spring MVC 是一个包含了 Dispatcher Servlet 的 MVC 框架. Dispatcher Servlet 实现了 : ...
- isinstance和issubclass
目录 一.isinstance与type 二.issubclass 一.isinstance与type 在游戏项目中,我们会在每个接口验证客户端传过来的参数类型,如果验证不通过,返回给客户端" ...
- python 各层级目录下的import方法
---恢复内容开始--- 以前经常使用python2.现在很多东西都切换到了python3,发现很多东西还是存在一些差异化的.跨目录import是常用的一种方法,并且有不同的表现形式,新手很容易搞混. ...
- STM32 F4xx Fault 异常错误定位指南
STM32 F407 采用 Cortex-M4 的内核,该内核的 Fault 异常可以捕获非法的内存访问和非法的编程行为.Fault异常能够检测到以下几类非法行为: 总线 Fault: 在取址.数据读 ...
- Java 泛型示例 - 泛型方法,类,接口
Java Genrics 是 Java 5 中引入的最重要的功能之一. 如果您一直在使用Java Collections并使用版本 5 或更高版本,那么我确定您已经使用过它. Java 中具有集合类的 ...
- 在Unity中使用自定义宏
最近写AVG工具时有这样的功能需求,AVG的角色可以支持动态的Spine动画,当没有Spine动画时采用默认的立绘图片替代. 这时在脚本中就可以采用自定义的宏来实现: 例如: #if VNSpine ...
- 记一次token安全认证的实践
阅读此文前请先阅读上一篇SpringBoot整合JWT实现用户认证了解JWT. 背景介绍: 因项目需求,有PC端 APP端和小程序端,但登陆接口是同一个,然而微服务也无法使用传统的session解决用 ...
- 公益:开放一台Nacos服务端给各位Spring Cloud爱好者
之前开放过一台公益Eureka Server给大家,以方便大家在阅读我博客中教程时候做实验.由于目前在连载Spring Cloud Alibaba,所以对应的也部署了一台Nacos,并且也开放出来,给 ...
- Java开发桌面程序学习(13)——Javafx多线程 下载功能
普通使用 Task<Void> task = new Task<Void>() { @Override protected void succeeded() { super.s ...