首页 > 编程笔记 > MySQL笔记 阅读:3

Java操作MongoDB过程详解(新手必看)

除了通过启动 mongo 进程来进入 Shell 环境访问数据库外,MongoDB 还提供了其他基于编程语言访问数据库的方法。

MongoDB 官方网站提供了 Java 语言的驱动包,我们可以利用驱动包使用多种编程方法来连接并操作 MongoDB 数据库。

Java操作MongoDB

1、安装Java语言驱动包

1) Maven方式

我们推荐使用 Maven 方式管理 MongoDB 的相关依赖包。Maven 项目中只需导入如下 pom 依赖包即可:
<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongodb-driver</artifactId>
    <version>3.8.2</version>
</dependency>
<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>bson</artifactId>
  <version>3.8.2</version>
</dependency>
<dependency>
  <groupId>org.mongodb</groupId>
  <artifactId>mongodb-driver-core</artifactId>
  <version>3.8.2</version>
</dependency>

2) 手动导入

如果手动下载了 MongoDB 驱动包(mongodb-driver),那么还必须下载其依赖项 bson 和 mongodb-driver-core 的安装包。这里需要注意的是,这 3 个安装包需要配合使用,并且版本必须一致,否则运行时系统会报错。

首先安装 MongoDB,我们采用的是 MongoDB 6.0.8 版本;然后安装 Java 开发工具,我们采用 Eclipse 开发工具;最后在 Github 网站下载 mongodb-driver-3.8.2.jar、mongodb-driver-core-3.8.2.jar、bson-3.8.2.jar 等驱动包。

安装完成后,我们用 Eclipse 创建项目,并导入需要的包,这样便可以在 Eclipse 中用代码实现 MongoDB 的简易连接。

2、Java操作MongoDB

1) import基础类库

若要完成 MongoDB 增、删、改、查等操作,就需要导入相关的类库。这里先导入连接数据库、建立客户端、数据库集合和文件操作等所需的类库,具体如下:
import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoCollection;
读者可以根据编程需要添加所需的类库。

2) 连接数据库

若要连接数据库,则需要指定数据库。如果数据库不存在,则 MongoDB 自动创建数据库。以下代码实现了简易的数据库连接:
public class App {
public static void main(String[] args) {
    try {
        // 连接MongoDB服务器,端口号为27017
        MongoClient mongoClient = new MongoClient("localhost", 27017);
        // 连接数据库
        MongoDatabase database = mongoClient.getDatabase("test");  // test可选
        System.out.println("Connect to database successfully!");
        System.out.println("MongoDatabase info is : "+mDatabase.getName());
    } catch (Exception e) {
        System.err.println(
            e.getClass().getName() + ": " + e.getMessage());
    }
}
}

3) 切换至集合

连接至指定数据库以后,使用以下代码切换到集合。如果集合不存在,则使用如下代码新建集合:
MongoCollection collection = database.getCollection("myTestCollection");

4) 插入文档

切换至集合后,我们就可以进行 MongDB 增、删、改、查等操作。首先定义文档,并使用 append() 方法追加内容,代码如下:
// 需要先导入org.bson.Document基础类库
// import org.bson.Document
Document document = new Document("_id", 1999)
                      .append("title", "MongoDB Insert Demo")
                      .append("description","database")
                      .append("likes", 30)
                      .append("by", "demo point")
                      .append("url", "http://www.test.com/MongoDB/");
在上述代码中,document 表示 BSON 文档,该文档实际上是一个列表,每项有两个元素——字段名和值。

文档定义完后,我们使用 insertOne() 方法将此文档插入集合,代码如下:
collection.insertOne(document);

如果插入多条数据,那么需要先定义一个 Document 列表,然后用 add() 方法在其中添加多个 Document 元素,最后用 insertMany() 方法插入这些数据,代码如下:
// 需要先导入java.util.ArrayList和java.util.List基础类库
// import java.util.ArrayList;
// import java.util.List;
List<Document> documents = new ArrayList<Document>();
documents.add(document1);
documents.add(document2);
collection.insertMany(documents);

5) 删除文档

使用 deleteOne() 方法删除一个文档,使用 deleteMany() 方法删除多个文档,代码如下:
collection.deleteOne(document);
collection.deleteMany(new Document("likes", 30));

6) 更新数据

使用 updateOne() 更新一条数据,代码如下。更新多条数据可用 deleteMany() 方法。
collection.updateOne(new Document("likes", 30), new Document("$set", new Document ("likes", 50)));
上述代码中的 updateOne() 方法有两个参数,第一个参数表示更新的内容为("likes", 30),第二个参数表示要修改的内容,使用 $set 参数修改当前值,修改的内容为("likes", 50)。

7) 查询数据

游标可以实现数据的查询和遍历显示。使用游标前需要导入 MongoCursor 类库,代码如下:
import com.mongodb.client.MongoCursor;
MongoCursor<Document> cursor =collection.find().iterator();
try {
    while (cursor.hasNext()) {
        System.out.println(cursor.next().toJson());
    }
}
finally {
    cursor.close();
}

8) 其他方法

删除数据库或集合,代码如下:
database.drop();
collection.drop();

关闭客户端连接,代码如下:
mongoClient.close();

相关文章