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 ...
随机推荐
- vue 借用element-ui实现头像上传 axios发送请求
<!-- 上传组件 --> <!-- 总结一下: action 写图片上传请求的路径 去路径哈 show-file-list就是当你上传时,是否会显示出上传的是哪一个图片,一般为fa ...
- 7.SourceTree 的使用
SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端管理工具,同时也是Mn版本控制系统工具.支持创建.克隆.提交.push.pull 和合并等操作. 下载路 ...
- CometOJ10C 鱼跃龙门
题目链接 problem 实际上就是对于给定的\(n\)求一个最小的\(x\)满足\(\frac{x(x+1)}{2}=kn(k\in N^*)\). solution 对上面的式子稍微变形可得\(x ...
- 【AtCoder】AtCoder Grand Contest 039 解题报告
点此进入比赛 \(A\):Connection and Disconnection(点此看题面) 大致题意: 给你一个字符串,将它重复\(k\)次.进行尽量少的操作,每次修改一个位置上的字符,使得不存 ...
- 关于group by的用法 原理
转载: https://blog.csdn.net/u014717572/article/details/80687042. 写在前面的话:用了好久group by,今天早上一觉醒来,突然感觉grou ...
- [题解向] Manacher简单习题
\(1\) LG1659 [国家集训队]拉拉队排练 求前\(k\)大的奇数长度回文串的长度之积. \(\rm |S|\leq 1e6,K\leq 1e12\) --一开始觉得挺水,就开始二分最少长度能 ...
- 【LOJ#2162】【POI2011】Garbage(欧拉回路)
[LOJ#2162][POI2011]Garbage(欧拉回路) 题面 LOJ 题解 首先有一个比较显然的结论,对于不需要修改颜色的边可以直接删掉,对于需要修改的边保留.说白点就是每条边要被访问的次数 ...
- 动态类型dynamic转换为特定类型T的方案
需求场景:有时候我们抓到一段请求数据,JSON格式的字符串数据,需要放在接口里重现问题,我们就可能会用dynamic先接受数据,然后再转换成特定数据发出请求. 方案一:直接使用特定对象T,来接受请求数 ...
- 爬虫框架-selenium
selenium介绍: selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟 ...
- Spring高频面试题,你能答的上哪些?(高级篇)
1.什么是 Spring 框架?Spring 框架有哪些主要模块? 2.使用 Spring 框架能带来哪些好处? 3.什么是控制反转(IOC)?什么是依赖注入? 4.请解释下 Spring 框架中的 ...