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 ...
随机推荐
- element-ui中的hover 光标移入某一个具体的td 有hover效果
<template> <div> <el-table :data="tableData" style="width: 100%"& ...
- myeclipse使用
安装一个myeclipse10或者2015 2014都可以 支持最高的JDK为7 myeclipse可以永久使用需要激活 有几步骤 myeclipse打开之后--windows--show view ...
- Fastdfs的安装流程
一.修改ip地址 1.查看网卡一的mac地址 cat /etc/udev/rules.d/70-persistent-net.rules 2.修改ip地址文件 cd /etc/sysconfig/ne ...
- python执行cmd命令
os.system os.system用来执行cmd指令,在cmd输出的内容会直接在控制台输出,返回结果为0表示执行成功 注意:os.system是简单粗暴的执行cmd指令,如果想获取在cmd输出的内 ...
- prerender-spa-plugin预渲染踩坑
为什么要使用预渲染? 为了应付SEO(国内特别是百度)考虑在网站(vue技术栈系列)做一些优化.大概有几种方案可以考虑: 服务端做优化: 第一,ssr,vue官方文档给出的服务器渲染方案,这是一套完整 ...
- 乘积量化(Product Quantization)
乘积量化 1.简介 乘积量化(PQ)算法是和VLAD算法是由法国INRIA实验室一同提出来的,为的是加快图像的检索速度,所以它是一种检索算法,在矢量量化(Vector Quantization,VQ) ...
- 手摸手教你bootstrap定制
老实说我一直不太喜欢使用bootstrap,bootstrap样式组件虽然丰富但实际开发使用到的不多:栅格系统虽然好用,满屏div也是看的头疼:所以当经理说要用bootstrap开发新项目的时候,我内 ...
- LeetCode 1:两数之和 Two Sum
题目: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中 ...
- Linux 部署vue项目(使用nginx)
1.部署Nginx 请参考Linux下部署nginx,此处不再重复 2.Vue项目打包 # 打包正式环境 npm run build:prod # 打包预发布环境 npm run build:stag ...
- VSCode 开发插件 推荐
VSCode 必装的 10 个高效开发插件 本文介绍了目前前端开发最受欢迎的开发工具 VSCode 必装的 10 个开发插件,用于大大提高软件开发的效率. VSCode 的基本使用可以参考我的原创视 ...