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 ...
随机推荐
- Codeforces Round #608 (Div. 2)
传送门 A. Suits 签到. Code /* * Author: heyuhhh * Created Time: 2019/12/15 17:16:33 */ #include <iostr ...
- [Linux]终端设备关系
1.概述 tty中基本上可以划分为console(/dev/console).虚拟终端(/dev/tty0~n)和伪终端(/dev/pts/0~n). 它们之间存在一定的关系. 为了说明这段关系,先要 ...
- win10系统使用小技巧【转】
win10的很多小技巧又简单又实用,这里给大家整理了10个小技巧,一分钟学会,秒变win10高手,看不完的先收藏再看哦. 1.改美区 在设置中时间和语言中将区域和语言改为美国就可以瞬间切换Foreca ...
- Java流程控制之循环语句
循环概述 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将 ...
- 洛谷 P5639 【CSGRound2】守序者的尊严
洛谷 P5639 [CSGRound2]守序者的尊严 洛谷传送门 题目背景 由于Y校最近进行了对学校食堂的全面改革与对小卖部的全面整治(乱搞),导致学校小卖部卖的零食被禁售了:学校食堂的炸鸡窗口也消失 ...
- 解决 layui 弹出层(弹框)一闪而过就消失的问题 (转载)
转载: 原文链接:https://blog.csdn.net/qq_20594019/article/details/83956532 本人遇到问题:使用layer.open()弹出页面层,出现弹框闪 ...
- apt-get failed:The following signatures were invalid: BADSIG
参考如下链接: https://askubuntu.com/questions/131601/gpg-error-release-the-following-signatures-were-inval ...
- java获取下一天的日期
我们来看看Java怎么获取下一天的日期: 哈哈哈,开玩笑啦,这个只是个段子. "哪怕悲伤有1000种,快乐有1种就够了."
- Mac下如何复制webp图片
将 WebP 格式图片拖到 Chrome 浏览器标签栏中(浏览器是肯定支持查看的,而且是 Google 自家的),这个时候图片是能够正常查看的.我们右键选中图片,选择「复制图片」. 打开 macO ...
- 如何在Mac上配置iTerm2以及给ITerm2配置lrzsz
Mac安装ITerm2: https://www.jianshu.com/p/9c3439cc3bdb 给ITerm2配置lrzsz: https://www.cnblogs.com/sunshine ...