在 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(七)的更多相关文章

  1. MongoDB Java Driver操作指南

    MongoDB为Java提供了非常丰富的API操作,相比关系型数据库,这种NoSQL本身的数据也有点面向对象的意思,所以对于Java来说,Mongo的数据结构更加友好. MongoDB在今年做了一次重 ...

  2. Mongodb Java Driver 参数配置解析

    要正确使用Mongodb Java Driver,MongoClientOptions参数配置对数据库访问的并发性能影响极大. connectionsPerHost:与目标数据库能够建立的最大conn ...

  3. mongoDb +Java+springboot

    前言 :mongoDb 是一种比较常用的非关系数据库,文档数据库, 格式为json ,redis 有五种格式. 1. 项目中要使用,这里简单做个示例.首先是连接mongoDB,用的最多的robomon ...

  4. BuguMongo是一个MongoDB Java开发框架,集成了DAO、Query、Lucene、GridFS等功能

    http://code.google.com/p/bugumongo/ 简介 BuguMongo是一个MongoDB Java开发框架,它的主要功能包括: 基于注解的对象-文档映射(Object-Do ...

  5. 数据库.MongoDB.Java样例

    1.先在MongoDB官网下载Java驱动包 MongoDB Java Driver: http://mongodb.github.io/mongo-java-driver/ JAR包下载列表 htt ...

  6. MongoDB Java

    MongoDB Java 环境配置 在Java程序中如果要使用MongoDB,你需要确保已经安装了Java环境及MongoDB JDBC 驱动. 你可以参考本站的Java教程来安装Java程序.现在让 ...

  7. mongodb Java(八)

    package com.mongodb.text; import java.net.UnknownHostException; import com.mongodb.DB; import com.mo ...

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

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

  9. 三、Mongodb Java中的使用

    添加maven依赖 <!--mongodb 驱动--> <dependency> <groupId>org.mongodb</groupId> < ...

  10. MongoDB Java连接---MongoDB基础用法(四)

    MongoDB 连接 标准 URI 连接语法: mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN ...

随机推荐

  1. Cisco pppoe上网设置

    1.配置虚拟端口: interface Dialer1 ip address negotiated ip nat outside ip virtual-reassembly in encapsulat ...

  2. 大数据量数据库设计与优化方案(SQL优化)

    转自:http://blog.sina.com.cn/s/blog_6c0541d50102wxen.html 一.数据库结构的设计 如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的 ...

  3. C缺陷与陷阱

    导读 词法"陷阱" 语法"陷阱" 语义"陷阱" 链接 库函数 预处理器 可移植性缺陷

  4. Feign、httpclient、OkHttp3 结合使用

    疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 疯狂创客圈 正在进行分布式和高并发基础原理 的研习,比如下面的一些基础性的内容: 一.Netty Redis 亿级流量 ...

  5. 【raid级别】RAID级别工作模式

    友情链接 磁盘分区,格式化,挂载,创建交换分区:https://www.cnblogs.com/HeiDi-BoKe/p/11936998.html RAID工作级别:https://www.cnbl ...

  6. vue 仿微信朋友圈9张图上传功能

    项目需求要求用户上传商品的时候可以一次性上传9张图,多余9张提示‘只能上传9张图’,并且每张图右上角有个删除按钮,图片也可以点击放大. 出来的效果图如下: 话不多说,上代码: <el-form- ...

  7. Spring Boot 启动以后然后再加载缓存数据 CommandLineRunner

    实际应用中,我们会有在项目服务启动完成以后去加载一些数据或做一些事情(比如缓存)这样的需求. 为了解决这样的问题,Spring Boot 为我们提供了一个方法,通过实现接口 CommandLineRu ...

  8. dictionary vs Hashtables

    DictionaryDictionary is generic type Dictionary<TKey,TValue>Dictionary class is a strong type ...

  9. Linux网络——查看网络连接情况的命令

    Linux网络——查看网络连接情况的命令 摘要:本文主要学习了Linux中用来查看网络连接情况的命令. hostname命令 hostname命令用于显示和设置系统的主机名称,设置只是临时生效,永久生 ...

  10. 关于Spring Boot你不得不知道的事--Spring Boot的基本操作

    1 Pom文件 1.1 spring-boot-starter-parent 表示当前pom文件从spring-boot-starter-parent继承下来,在spring-boot-starter ...