`

mongodb最新java驱动CRUD使用演示

阅读更多

    今天使用java代码调用mongodb数据库,用maven引入了最新版的mongodb驱动,在网上找了demo结果发现将demo贴到eclipse上之后好多过期方法。所以猜想mongodb驱动版本肯定有很大的更新。

    果不其然,mongodb的确有了最新版3.x。而网上几乎所有的demo都基于2.x版本。下面是在github上找的一些资料,再结合官方文档总结的3.x版本的CRUD操作。

 

    以下演示源码地址:https://github.com/smallbug-vip/repo

 

首先在pom.xml中配置引入jar包:

<dependency>
			<groupId>org.mongodb</groupId>
			<artifactId>mongo-java-driver</artifactId>
			<version>3.2.1</version>
		</dependency>

 下面演示会使用到一些静态方法,eclipse中使用快捷键不能自动导包,可以手动添加:

import static com.mongodb.client.model.Filters.and;
import static com.mongodb.client.model.Filters.eq;
import static com.mongodb.client.model.Filters.exists;
import static com.mongodb.client.model.Filters.gt;
import static com.mongodb.client.model.Filters.gte;
import static com.mongodb.client.model.Filters.lt;
import static com.mongodb.client.model.Filters.lte;
import static com.mongodb.client.model.Projections.excludeId;
import static com.mongodb.client.model.Projections.include;
import static com.mongodb.client.model.Sorts.descending;

 准备工作:

MongoDatabase db = null;
	MongoClient client = null;

	@Before
	public void before() {
		client = new MongoClient("192.168.88.132", 27017);
		db = client.getDatabase("its");
	}

	@After
	public void after() {
		if (client != null) {
			client.close();
		}
	}

 获取连接:

@Test
	public void testCollections() {

		MongoIterable<String> collections = db.listCollectionNames();
		MongoCursor<String> cu = collections.iterator();
		for (; cu.hasNext();) {
			System.out.println(cu.next());
		}
	}

  测试增加一个Document:

@Test
	public void testAdd() {
		MongoCollection<Document> col = db.getCollection("s1");
		Document doc = new Document("name", "MongoDB")//
				.append("type", "database")//
				.append("count", 1)//
				.append("info", new Document("x", 203).append("y", 102));
		col.insertOne(doc);
	}

 测试增加多个Document:

@Test
	public void testAddALL() {
		MongoCollection<Document> col = db.getCollection("s1");
		List<Document> dos = new ArrayList<Document>();
		for (int i = 0; i < 100; i++) {
			dos.add(new Document("i", i));
		}
		col.insertMany(dos);
	}

 查看当前有多少记录:

@Test
	public void testCount() {
		MongoCollection<Document> col = db.getCollection("s1");
		System.out.println(col.count());
	}

 获取第一条记录:

@Test
	public void testFirst() {
		MongoCollection<Document> col = db.getCollection("s1");
		Document myDoc = col.find().first();
		System.out.println(myDoc.toJson());
	}

 获取第所有记录:

@Test
	public void testFindAll() {
		MongoCollection<Document> col = db.getCollection("s1");
		/**************** 第一种方法 *********************/
		// MongoCursor<Document> cursor = col.find().iterator();
		// while (cursor.hasNext()) {
		// System.out.println(cursor.next().toJson());
		// }
		/**************** 第二种方法 *********************/
		for (Document cur : col.find()) {
			System.out.println(cur.toJson());
		}
	}

 分页:

@Test
	public void testLimit() {
		MongoCollection<Document> col = db.getCollection("s1");
		for (Document cur : col.find().skip(20).limit(10)) {
			System.out.println(cur.toJson());
		}
	}

 条件查询:

@Test
	public void testFilter() {
		MongoCollection<Document> col = db.getCollection("s1");
		// eq为静态导入
		Document myDoc = col.find(eq("i", 71)).first();
		System.out.println(myDoc.toJson());
	}

 获得子集:

@Test
	public void testBlock() {
		MongoCollection<Document> col = db.getCollection("s1");
		Block<Document> printBlock = new Block<Document>() {
			@Override
			public void apply(final Document document) {
				System.out.println(document.toJson());
			}
		};
		col.find(and(gt("i", 50), lte("i", 80))).forEach(printBlock);
	}

 排序:

@Test
	public void testSort() {
		MongoCollection<Document> col = db.getCollection("s1");
		// 升序 ascending
		FindIterable<Document> it = col.find(exists("i")).sort(descending("i"));
		for (Document d : it) {
			System.out.println(d.toJson());
		}
	}

 筛选字段:

@Test
	public void testProjection() {
		MongoCollection<Document> col = db.getCollection("s1");
		FindIterable<Document> it = col.find()//
				.projection(and(include("name"), excludeId()));
		for (Document d : it) {
			System.out.println(d.toJson());
		}
	}

 更新一条Document:

@Test
	public void testUpdateOne() {
		MongoCollection<Document> col = db.getCollection("s1");
		col.updateOne(//
				eq("i", 10), new Document("$set", new Document("i", 110)));
	}

 更新多条记录:

@Test
	public void testUpdateMany() {
		MongoCollection<Document> col = db.getCollection("s1");
		// $inc 自增
		UpdateResult updateResult = col.updateMany(lt("i", 10), new Document("$inc", new Document("i", 234)));
		System.out.println(updateResult.getModifiedCount());
	}

 测试删除一条Document:

@Test
	public void testDeleteOne() {
		MongoCollection<Document> col = db.getCollection("s1");
		DeleteResult re = col.deleteOne(eq("i", 234));
		System.out.println(re.getDeletedCount());
	}

 测试删除多条Document:

@Test
	public void testDeleteMany() {
		MongoCollection<Document> col = db.getCollection("s1");
		DeleteResult deleteResult = col.deleteMany(gte("i", 100));
		System.out.println(deleteResult.getDeletedCount());
	}

 

0
0
分享到:
评论

相关推荐

    mongodb-java驱动,内含3个jar包和一个JAVA测试类

    MongoDB Java驱动是Java开发者与MongoDB数据库进行交互的重要工具,它允许程序通过Java代码执行CRUD(创建、读取、更新、删除)操作。在本压缩包中,包含了三个核心的jar包以及一个名为`MongoDBJDBC.java`的Java测试...

    java操作mongodb

    在Java环境中,我们可以使用MongoDB的Java驱动程序来实现与数据库的连接和数据操作。以下是关于“java操作mongodb”的详细知识点: 1. **MongoDB Java驱动程序**: MongoDB提供了官方的Java驱动程序,它允许开发者...

    Java-and-MongoDB-Integration:使用Mongo Java驱动程序实现一个简单的程序来演示Mongo DB中的CRUD操作

    使用Mongo Java驱动程序实现一个简单的程序来演示Mongo DB中的CRUD操作。 要求: •来自MongoDB社区版本。 •来自MongoDB指南针。 它提供了有效的用户界面来查看您的数据库,集合和文档,还允许您执行诸如find()...

    Spring-Mongodb例子

    MongoTemplate提供了对数据库操作的抽象,使得开发者可以不直接操作MongoDB的Java驱动程序。 2. **MongoRepository**:Spring Data MongoDB提供了一组接口,如MongoRepository,用于简化数据访问层的实现。通过继承...

    Jersey-Mongodb:Java Maven应用程序代表mongodb如何与jersey一起使用(RESTful)

    6. **MongoDB Java驱动程序**:了解如何使用Java驱动程序连接到MongoDB,执行查询和更新操作。 7. **JSON序列化与反序列化**:由于RESTful服务通常使用JSON作为数据交换格式,所以需要理解如何在Java中处理JSON对象...

    mongodbtest

    在Java开发中,MongoDB 提供了Java驱动程序,使得Java开发者可以方便地与MongoDB进行交互。这个“mongodbtest”很可能是一个Java项目的示例,用于演示如何使用Java API操作MongoDB数据库。以下是一些关于MongoDB和...

    mongodb资料

    MongoDB提供了丰富的驱动程序,Java驱动是其中最常用的一个,它允许开发者用面向对象的方式与MongoDB交互。这个文档可能涵盖了如何创建MongoClient实例、连接到数据库、创建集合、执行CRUD(Create、Read、Update、...

    java操作mongo的小例子

    首先,为了在Java中使用MongoDB,我们需要引入MongoDB的Java驱动程序。这通常通过Maven或Gradle的依赖管理工具完成。对于Maven,可以在`pom.xml`文件中添加以下依赖: ```xml &lt;groupId&gt;org.mongodb &lt;artifactId&gt;...

    mongoDB入门实战手册(中文版)

    1. **驱动程序**:介绍MongoDB官方提供的Java驱动程序及其版本兼容性。 2. **建立连接**:演示如何使用Java代码连接到MongoDB服务器。 3. **基本CRUD操作**: - 插入数据:展示如何向集合中插入单个或多个文档。 -...

    springMongodb参考文档中文版

    - **连接MongoDB**:介绍了如何使用Spring框架连接MongoDB实例,包括Java元数据和XML元数据两种方式。 - **MongoTemplate**:作为Spring Data MongoDB的核心类,提供了丰富的操作MongoDB的方法。 - **文档操作**:...

    mongodbDemo.rar

    10. **连接和驱动**:MongoDB提供了多种编程语言的驱动程序,如Python、Java、Node.js等,方便开发者在各种环境中与MongoDB交互。 在“mongodbDemo”这个项目中,可能包含了创建数据库、插入文档、查询数据、更新和...

    CRUD-MongoDB

    在 Java 开发环境中,我们通常使用 MongoDB Java 驱动程序来执行 CRUD(创建、读取、更新和删除)操作。本教程将深入探讨如何在 Java 中与 MongoDB 进行交互。 首先,确保已安装 MongoDB 服务器并正确运行。然后,...

    MongoDB入门的一些资料

    3. **应用程序集成**:如何在各种编程语言(如Python、Java、Node.js等)中使用MongoDB驱动。 4. **故障排查**:常见的错误和异常处理,以及监控和日志分析。 5. **云服务集成**:如使用MongoDB Atlas在云端部署和...

    (十五) 完整的CRUD示列

    源码可能是用Java、Python、C#等常见编程语言编写的,工具可能涉及到数据库管理系统如MySQL、Oracle、MongoDB,或者是使用了像Spring Boot、Django、Express.js等Web开发框架。 压缩包子文件的文件名称“studentExt...

    MongoDB权威指南.第2版

    12. **应用开发**:学习如何使用各种语言(如Python、Java、Node.js等)的驱动程序与MongoDB进行交互,以及如何设计高性能的应用。 13. **运维与监控**:了解MongoDB的日志管理、性能监控工具,以及如何进行故障...

    MongoDB权威指南

    13. **应用开发**:介绍如何使用各种语言(如Python、Java、Node.js等)的驱动程序连接和操作MongoDB,以及开发中应注意的事项。 通过《MongoDB权威指南》,读者不仅可以深入理解MongoDB的工作原理,还能学习到实际...

    mongo-playground:使用 mongodb 进行试验

    在Java中,我们通常使用MongoDB的Java驱动程序来连接和操作数据库。这个驱动程序提供了丰富的API,可以执行各种数据库操作,如创建、读取、更新和删除(CRUD)文档。MongoDB Java驱动程序的核心类包括`MongoClient`...

    crud-21.rar

    CRUD操作在Web开发中尤其重要,特别是在使用诸如PHP、Java、Python等服务器端语言以及MySQL、PostgreSQL等数据库时。许多框架和库,如Spring Boot、Django或Laravel,都提供了简化这些操作的方法。 在“crud-21”这...

    SpringSource-spring-data-document-examples-1.0.0.M4-MongoDB-Examples

    在MongoDB的例子中,Spring Data提供了一套统一的API,使得开发者可以使用Java语言进行MongoDB的操作,而无需直接接触MongoDB的原生驱动。 首先,让我们深入了解Spring Data MongoDB的核心概念: 1. **Mongo...

    MVCExampleWithMongoDb:使用MVC设计开发的网页向MongoDB演示数据读写更新

    Java开发者可以使用MongoDB的官方驱动程序MongoDB Java Driver来与数据库进行交互。这个驱动提供了一套丰富的API,用于执行CRUD(创建、读取、更新、删除)操作。此外,Spring Data MongoDB库进一步简化了MongoDB与...

Global site tag (gtag.js) - Google Analytics