使用MongoClient连接MongoDB数据库

1. 流程图

graph TD
A[开始] --> B[创建MongoClient对象]
B --> C[连接MongoDB服务器]
C --> D[获取数据库]
D --> E[获取集合]
E --> F[插入文档]
F --> G[查询文档]
G --> H[更新文档]
H --> I[删除文档]
I --> J[关闭连接]
J --> K[结束]

2. 步骤及代码详解

步骤1: 创建MongoClient对象

首先需要创建一个MongoClient对象来连接MongoDB服务器。使用以下代码:

import com.mongodb.MongoClient;

public class Main {
    public static void main(String[] args) {
        // 创建MongoClient对象
        MongoClient mongoClient = new MongoClient("localhost", 27017);
    }
}

这里创建了一个名为mongoClient的MongoClient对象,并将MongoDB服务器的主机名和端口号作为参数传递给构造函数。

步骤2: 连接MongoDB服务器

连接MongoDB服务器需要调用MongoClient对象的connect方法。使用以下代码:

import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.client.MongoDatabase;

public class Main {
    public static void main(String[] args) {
        // 创建MongoClient对象
        MongoClient mongoClient = new MongoClient("localhost", 27017);

        // 连接MongoDB服务器
        MongoDatabase database = mongoClient.getDatabase("mydb");
    }
}

这里使用getDatabase方法获取名为mydb的数据库对象。如果数据库不存在,它将自动创建。

步骤3: 获取集合

通过数据库对象可以获取集合(表)对象。使用以下代码:

import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;

public class Main {
    public static void main(String[] args) {
        // 创建MongoClient对象
        MongoClient mongoClient = new MongoClient("localhost", 27017);

        // 连接MongoDB服务器
        MongoDatabase database = mongoClient.getDatabase("mydb");

        // 获取集合
        MongoCollection<Document> collection = database.getCollection("mycollection");
    }
}

这里使用getCollection方法获取名为mycollection的集合对象。

步骤4: 插入文档

通过集合对象可以插入文档(记录)。使用以下代码:

import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;

public class Main {
    public static void main(String[] args) {
        // 创建MongoClient对象
        MongoClient mongoClient = new MongoClient("localhost", 27017);

        // 连接MongoDB服务器
        MongoDatabase database = mongoClient.getDatabase("mydb");

        // 获取集合
        MongoCollection<Document> collection = database.getCollection("mycollection");

        // 插入文档
        Document document = new Document("name", "John")
                .append("age", 30)
                .append("address", "123 Street");
        collection.insertOne(document);
    }
}

这里使用insertOne方法将一个文档对象插入到集合中。文档对象使用Document类表示,可以通过append方法添加键值对。

步骤5: 查询文档

通过集合对象可以查询文档(记录)。使用以下代码:

import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;

public class Main {
    public static void main(String[] args) {
        // 创建MongoClient对象
        MongoClient mongoClient = new MongoClient("localhost", 27017);

        // 连接MongoDB服务器
        MongoDatabase database = mongoClient.getDatabase("mydb");

        // 获取集合
        MongoCollection<Document> collection = database.getCollection("mycollection");

        // 查询文档
        FindIterable<Document> documents = collection.find();
        for (Document document : documents) {
            System.out.println(document);
        }
    }
}

这里使用find方法获取所有文档的FindIterable对象,然后使用增强型for循环遍历并打印每个文档。

步骤6: 更新文档

通过集合对象可以更新文档(记录)。使用以下代码:

import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import static com.mongodb.client.model.Filters.*;
import static com.mongodb.client.model.Updates.*;

public class Main {
    public static void main(String[] args)