今天使用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()); }
相关推荐
MongoDB Java驱动是Java开发者与MongoDB数据库进行交互的重要工具,它允许程序通过Java代码执行CRUD(创建、读取、更新、删除)操作。在本压缩包中,包含了三个核心的jar包以及一个名为`MongoDBJDBC.java`的Java测试...
在Java环境中,我们可以使用MongoDB的Java驱动程序来实现与数据库的连接和数据操作。以下是关于“java操作mongodb”的详细知识点: 1. **MongoDB Java驱动程序**: MongoDB提供了官方的Java驱动程序,它允许开发者...
使用Mongo Java驱动程序实现一个简单的程序来演示Mongo DB中的CRUD操作。 要求: •来自MongoDB社区版本。 •来自MongoDB指南针。 它提供了有效的用户界面来查看您的数据库,集合和文档,还允许您执行诸如find()...
MongoTemplate提供了对数据库操作的抽象,使得开发者可以不直接操作MongoDB的Java驱动程序。 2. **MongoRepository**:Spring Data MongoDB提供了一组接口,如MongoRepository,用于简化数据访问层的实现。通过继承...
6. **MongoDB Java驱动程序**:了解如何使用Java驱动程序连接到MongoDB,执行查询和更新操作。 7. **JSON序列化与反序列化**:由于RESTful服务通常使用JSON作为数据交换格式,所以需要理解如何在Java中处理JSON对象...
在Java开发中,MongoDB 提供了Java驱动程序,使得Java开发者可以方便地与MongoDB进行交互。这个“mongodbtest”很可能是一个Java项目的示例,用于演示如何使用Java API操作MongoDB数据库。以下是一些关于MongoDB和...
MongoDB提供了丰富的驱动程序,Java驱动是其中最常用的一个,它允许开发者用面向对象的方式与MongoDB交互。这个文档可能涵盖了如何创建MongoClient实例、连接到数据库、创建集合、执行CRUD(Create、Read、Update、...
首先,为了在Java中使用MongoDB,我们需要引入MongoDB的Java驱动程序。这通常通过Maven或Gradle的依赖管理工具完成。对于Maven,可以在`pom.xml`文件中添加以下依赖: ```xml <groupId>org.mongodb <artifactId>...
1. **驱动程序**:介绍MongoDB官方提供的Java驱动程序及其版本兼容性。 2. **建立连接**:演示如何使用Java代码连接到MongoDB服务器。 3. **基本CRUD操作**: - 插入数据:展示如何向集合中插入单个或多个文档。 -...
- **连接MongoDB**:介绍了如何使用Spring框架连接MongoDB实例,包括Java元数据和XML元数据两种方式。 - **MongoTemplate**:作为Spring Data MongoDB的核心类,提供了丰富的操作MongoDB的方法。 - **文档操作**:...
10. **连接和驱动**:MongoDB提供了多种编程语言的驱动程序,如Python、Java、Node.js等,方便开发者在各种环境中与MongoDB交互。 在“mongodbDemo”这个项目中,可能包含了创建数据库、插入文档、查询数据、更新和...
在 Java 开发环境中,我们通常使用 MongoDB Java 驱动程序来执行 CRUD(创建、读取、更新和删除)操作。本教程将深入探讨如何在 Java 中与 MongoDB 进行交互。 首先,确保已安装 MongoDB 服务器并正确运行。然后,...
3. **应用程序集成**:如何在各种编程语言(如Python、Java、Node.js等)中使用MongoDB驱动。 4. **故障排查**:常见的错误和异常处理,以及监控和日志分析。 5. **云服务集成**:如使用MongoDB Atlas在云端部署和...
源码可能是用Java、Python、C#等常见编程语言编写的,工具可能涉及到数据库管理系统如MySQL、Oracle、MongoDB,或者是使用了像Spring Boot、Django、Express.js等Web开发框架。 压缩包子文件的文件名称“studentExt...
12. **应用开发**:学习如何使用各种语言(如Python、Java、Node.js等)的驱动程序与MongoDB进行交互,以及如何设计高性能的应用。 13. **运维与监控**:了解MongoDB的日志管理、性能监控工具,以及如何进行故障...
13. **应用开发**:介绍如何使用各种语言(如Python、Java、Node.js等)的驱动程序连接和操作MongoDB,以及开发中应注意的事项。 通过《MongoDB权威指南》,读者不仅可以深入理解MongoDB的工作原理,还能学习到实际...
在Java中,我们通常使用MongoDB的Java驱动程序来连接和操作数据库。这个驱动程序提供了丰富的API,可以执行各种数据库操作,如创建、读取、更新和删除(CRUD)文档。MongoDB Java驱动程序的核心类包括`MongoClient`...
CRUD操作在Web开发中尤其重要,特别是在使用诸如PHP、Java、Python等服务器端语言以及MySQL、PostgreSQL等数据库时。许多框架和库,如Spring Boot、Django或Laravel,都提供了简化这些操作的方法。 在“crud-21”这...
在MongoDB的例子中,Spring Data提供了一套统一的API,使得开发者可以使用Java语言进行MongoDB的操作,而无需直接接触MongoDB的原生驱动。 首先,让我们深入了解Spring Data MongoDB的核心概念: 1. **Mongo...
Java开发者可以使用MongoDB的官方驱动程序MongoDB Java Driver来与数据库进行交互。这个驱动提供了一套丰富的API,用于执行CRUD(创建、读取、更新、删除)操作。此外,Spring Data MongoDB库进一步简化了MongoDB与...