MongoDB:在 Java 中使用 MongoDB

2023-05-16

除了通过启动 mongo 进程进如 Shell 环境访问数据库外,MongoDB 还提供了其他基于编程语言的访问数据库方法。MongoDB 官方提供了 Java 语言的驱动包,利用这些驱动包可使用多种编程方法来连接并操作 MongoDB 数据库。

想要在 Java 程序中使用 MongoDB,需要确保您的电脑上已经安装了 MongoDB,并搭建好了 Java 的环境。

本篇内容主要介绍:Java 实现对 MongDB 的操作、Java 操作 MongoDB 数据库 Demo


文章目录

    • 一、Java 实现对 MongDB 的操作
        • 1、前提条件
        • 2、添加依赖
    • 二、Java 操作 MongoDB 数据库 Demo
        • 1、连接数据库
        • 2、创建集合
        • 3、列出所有集合
        • 4、获取/选择集合
        • 5、插入文档
        • 6、查询文档
        • 7、更新文档
        • 8、删除文档
        • 9、删除集合


一、Java 实现对 MongDB 的操作

1、前提条件

除了通过启动 mongo 进程进如 Shell 环境访问数据库外,MongoDB 还提供了其他基于编程语言的访问数据库方法。MongoDB 官方提供了 Java 语言的驱动包,利用这些驱动包可使用多种编程方法来连接并操作 MongoDB 数据库。

想要在 Java 程序中使用 MongoDB,需要确保您的电脑上已经安装了 MongoDB,并搭建好了 Java 的环境。

2、添加依赖

在 Maven 中添加以下依赖来使用操作 MongoDB 数据库:

    <dependencies>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>bson</artifactId>
            <version>3.12.11</version>
        </dependency>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongodb-driver</artifactId>
            <version>3.12.11</version>
        </dependency>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongodb-driver-core</artifactId>
            <version>3.12.11</version>
        </dependency>
       
        ...
    </dependencies>

二、Java 操作 MongoDB 数据库 Demo

1、连接数据库

package com.lizhengi.demo;

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

/**
 * @author liziheng
 * @version 1.0.0
 * @description 连接数据库
 * @date 2023-01-04 5:19 下午
 **/
public class ConnectToMongodb {

    public static void main(String[] args) {
        // 创建 MongoDB 连接
        MongoClient mongo = new MongoClient("localhost", 27017);

        // 连接到 MongoDB
        MongoCredential credential = MongoCredential.createCredential("lizhengi", "lizhengi", "password".toCharArray());
        System.out.println("Credentials ::" + credential);

        // 访问数据库
        MongoDatabase database = mongo.getDatabase("lizhengi");
        System.out.println("Connect to database successfully!");
        System.out.println("MongoDatabase info is : " + database.getName());
    }
}

运行 Main 函数,返回以下结果:

Credentials ::MongoCredential{mechanism=null, userName=‘lizhengi’, source=‘lizhengi’, password=, mechanismProperties=}
Connect to database successfully!
MongoDatabase info is : lizhengi

2、创建集合

package com.lizhengi.demo;

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

/**
 * @author liziheng
 * @version 1.0.0
 * @description 创建集合
 * @date 2023-01-04 7:36 下午
 **/
public class CreatingCollection {
    public static void main(String[] args) {
        // 创建 MongoDB 连接
        MongoClient mongo = new MongoClient("localhost", 27017);

        // 连接到 MongoDB
        MongoCredential credential = MongoCredential.createCredential("lizhengi", "lizhengi", "password".toCharArray());
        System.out.println("Credentials ::" + credential);

        // 访问数据库
        MongoDatabase database = mongo.getDatabase("lizhengi");
        System.out.println("Connect to database successfully!");
        System.out.println("MongoDatabase info is : " + database.getName());

        // 创建集合
        database.createCollection("lizhengi_test_3");
        System.out.println("create collection successfully!");
    }
}

运行 Main 函数,返回以下结果:

Credentials ::MongoCredential{mechanism=null, userName=‘lizhengi’, source=‘lizhengi’, password=, mechanismProperties=}
Connect to database successfully!
MongoDatabase info is : lizhengi

create collection successfully!

3、列出所有集合

package com.lizhengi.demo;

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

/**
 * @author liziheng
 * @version 1.0.0
 * @description 列出所有集合
 * @date 2023-01-04 7:56 下午
 **/
public class ListOfCollection {

    public static void main(String[] args) {
        // 创建 MongoDB 连接
        MongoClient mongo = new MongoClient("localhost", 27017);

        // 连接到 MongoDB
        MongoCredential credential = MongoCredential.createCredential("lizhengi", "lizhengi", "password".toCharArray());
        System.out.println("Credentials ::" + credential);

        // 访问数据库
        MongoDatabase database = mongo.getDatabase("lizhengi");
        System.out.println("Connect to database successfully!");
        System.out.println("MongoDatabase info is : " + database.getName());

        // 检索集合列表
        for (String name : database.listCollectionNames()) {
            System.out.println(name);
        }
    }
}

运行 Main 函数,返回以下结果:

Credentials ::MongoCredential{mechanism=null, userName=‘lizhengi’, source=‘lizhengi’, password=, mechanismProperties=}
Connect to database successfully!
MongoDatabase info is : lizhengi

lizhengi
lizhengi_test_3
lizhengi_test_2

4、获取/选择集合

package com.lizhengi.demo;

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

/**
 * @author liziheng
 * @version 1.0.0
 * @description 获取/选择集合
 * @date 2023-01-04 7:40 下午
 **/
public class SelectingCollection {

    public static void main(String[] args) {
        // 创建 MongoDB 连接
        MongoClient mongo = new MongoClient("localhost", 27017);

        // 连接到 MongoDB
        MongoCredential credential = MongoCredential.createCredential("lizhengi", "lizhengi", "password".toCharArray());
        System.out.println("Credentials ::" + credential);

        // 访问数据库
        MongoDatabase database = mongo.getDatabase("lizhengi");
        System.out.println("Connect to database successfully!");
        System.out.println("MongoDatabase info is : " + database.getName());

        // 创建集合
        MongoCollection<Document> collection = database.getCollection("lizhengi");
        System.out.println("chose collection : " + collection.getNamespace());
    }
}

运行 Main 函数,返回以下结果:

Credentials ::MongoCredential{mechanism=null, userName=‘lizhengi’, source=‘lizhengi’, password=, mechanismProperties=}
Connect to database successfully!
MongoDatabase info is : lizhengi
chose collection : lizhengi.lizhengi

5、插入文档

package com.lizhengi.demo;

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

/**
 * @author liziheng
 * @version 1.0.0
 * @description 插入文档
 * @date 2023-01-04 7:45 下午
 **/
public class InsertingDocument {

    public static void main(String[] args) {
        // 创建 MongoDB 连接
        MongoClient mongo = new MongoClient("localhost", 27017);

        // 连接到 MongoDB
        MongoCredential credential = MongoCredential.createCredential("lizhengi", "lizhengi", "password".toCharArray());
        System.out.println("Credentials ::" + credential);

        // 访问数据库
        MongoDatabase database = mongo.getDatabase("lizhengi");
        System.out.println("Connect to database successfully!");
        System.out.println("MongoDatabase info is : " + database.getName());

        // 检索集合
        MongoCollection<Document> collection = database.getCollection("lizhengi");
        System.out.println("chose collection : " + collection.getNamespace());

        Document document = new Document("title", "MongoDB")
                .append("description", "database")
                .append("likes", 200)
                .append("url", "https://lizhengi.blog.csdn.net/")
                .append("by", "lizhengi");

        // 将文档插入到集合中
        collection.insertOne(document);
        System.out.println("Document insert successfully!");
    }
}

运行 Main 函数,返回以下结果:

Credentials ::MongoCredential{mechanism=null, userName=‘lizhengi’, source=‘lizhengi’, password=, mechanismProperties=}
Connect to database successfully!
MongoDatabase info is : lizhengi
chose collection : lizhengi.lizhengi

Document insert successfully!

6、查询文档

package com.lizhengi.demo;

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

/**
 * @author liziheng
 * @version 1.0.0
 * @description 查询文档
 * @date 2023-01-04 7:52 下午
 **/
public class RetrievingAllDocuments {

    public static void main(String[] args) {
        // 创建 MongoDB 连接
        MongoClient mongo = new MongoClient("localhost", 27017);

        // 连接到 MongoDB
        MongoCredential credential = MongoCredential.createCredential("lizhengi", "lizhengi", "password".toCharArray());
        System.out.println("Credentials ::" + credential);

        // 访问数据库
        MongoDatabase database = mongo.getDatabase("lizhengi");
        System.out.println("Connect to database successfully!");
        System.out.println("MongoDatabase info is : " + database.getName());

        // 检索集合
        MongoCollection<Document> collection = database.getCollection("lizhengi");
        System.out.println("chose collection : " + collection.getNamespace());

        // 获取 iterable 对象
        FindIterable<Document> iterDoc = collection.find();
        int i = 1;
        // 获取迭代器
        for (Document document : iterDoc) {
            System.out.println(document);
            i++;
        }
    }
}

运行 Main 函数,返回以下结果:

Credentials ::MongoCredential{mechanism=null, userName=‘lizhengi’, source=‘lizhengi’, password=, mechanismProperties=}
Connect to database successfully!
MongoDatabase info is : lizhengi
chose collection : lizhengi.lizhengi

Document{{_id=63b5676adcb7bc291eb5285d, title=MongoDB, description=database, likes=200, url=https://lizhengi.blog.csdn.net/, by=lizhengi}}
Document{{_id=63b568fa76a0f93c0a6c9f2a, title=MongoDB, description=database, likes=200, url=https://lizhengi.blog.csdn.net/, by=lizhengi2}}

7、更新文档

package com.lizhengi.demo;

import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import com.mongodb.client.model.Updates;
import org.bson.Document;

/**
 * @author liziheng
 * @version 1.0.0
 * @description 更新文档
 * @date 2023-01-04 7:59 下午
 **/
public class UpdatingDocuments {

    public static void main(String[] args) {
        // 创建 MongoDB 连接
        MongoClient mongo = new MongoClient("localhost", 27017);

        // 连接到 MongoDB
        MongoCredential credential = MongoCredential.createCredential("lizhengi", "lizhengi", "password".toCharArray());
        System.out.println("Credentials ::" + credential);

        // 访问数据库
        MongoDatabase database = mongo.getDatabase("lizhengi");
        System.out.println("Connect to database successfully!");
        System.out.println("MongoDatabase info is : " + database.getName());

        // 检索集合
        MongoCollection<Document> collection = database.getCollection("lizhengi");
        System.out.println("chose collection : " + collection.getNamespace());

        // 更新单个可用 updateOne
        collection.updateMany(Filters.eq("title", "MongoDB"), Updates.set("likes", 150));
        System.out.println("Document update successfully...");
        // 更新后检索文档
        // 获取 iterable 对象
        FindIterable<Document> iterDoc = collection.find();
        int i = 1;
        // 获取迭代器
        for (Document document : iterDoc) {
            System.out.println(document);
            i++;
        }
    }
}

运行 Main 函数,返回以下结果:

Credentials ::MongoCredential{mechanism=null, userName='lizhengi', source='lizhengi', password=<hidden>, mechanismProperties=<hidden>}
Connect to database successfully!
MongoDatabase info is : lizhengi
chose collection : lizhengi.lizhengi
Document update successfully...
Document{{_id=63b5676adcb7bc291eb5285d, title=MongoDB, description=database, likes=150, url=https://lizhengi.blog.csdn.net/, by=lizhengi}}
Document{{_id=63b568fa76a0f93c0a6c9f2a, title=MongoDB, description=database, likes=200, url=https://lizhengi.blog.csdn.net/, by=lizhengi2}}

8、删除文档

package com.lizhengi.demo;

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

/**
 * @author liziheng
 * @version 1.0.0
 * @description 删除文档
 * @date 2023-01-04 8:03 下午
 **/
public class DeletingDocuments {

    public static void main(String[] args) {
        // 创建 MongoDB 连接
        MongoClient mongo = new MongoClient("localhost", 27017);

        // 连接到 MongoDB
        MongoCredential credential = MongoCredential.createCredential("lizhengi", "lizhengi", "password".toCharArray());
        System.out.println("Credentials ::" + credential);

        // 访问数据库
        MongoDatabase database = mongo.getDatabase("lizhengi");
        System.out.println("Connect to database successfully!");
        System.out.println("MongoDatabase info is : " + database.getName());

        // 检索集合
        MongoCollection<Document> collection = database.getCollection("lizhengi");
        System.out.println("chose collection : " + collection.getNamespace());

        // 删除文档 删除多个可用 deleteMany
        collection.deleteOne(Filters.eq("title", "MongoDB"));
        System.out.println("Document delete successfully...");
        // 删除后检索文档
        // 获取 iterable 对象
        FindIterable<Document> iterDoc = collection.find();
        int i = 1;
        // 获取迭代器
        for (Document document : iterDoc) {
            System.out.println(document);
            i++;
        }
    }
}

运行 Main 函数,返回以下结果:

Credentials ::MongoCredential{mechanism=null, userName=‘lizhengi’, source=‘lizhengi’, password=, mechanismProperties=}
Connect to database successfully!
MongoDatabase info is : lizhengi
chose collection : lizhengi.lizhengi

Document delete successfully…
Document{{_id=63b568fa76a0f93c0a6c9f2a, title=MongoDB, description=database, likes=200, url=https://lizhengi.blog.csdn.net/, by=lizhengi2}}

9、删除集合

package com.lizhengi.demo;

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

/**
 * @author liziheng
 * @version 1.0.0
 * @description 删除集合
 * @date 2023-01-04 8:06 下午
 **/
public class DropingCollection {

    public static void main(String[] args) {
        // 创建 MongoDB 连接
        MongoClient mongo = new MongoClient("localhost", 27017);

        // 连接到 MongoDB
        MongoCredential credential = MongoCredential.createCredential("lizhengi", "lizhengi", "password".toCharArray());
        System.out.println("Credentials ::" + credential);

        // 访问数据库
        MongoDatabase database = mongo.getDatabase("lizhengi");
        System.out.println("Connect to database successfully!");
        System.out.println("MongoDatabase info is : " + database.getName());

        // 检索集合
        MongoCollection<Document> collection = database.getCollection("lizhengi_test_3");
        System.out.println("chose collection : " + collection.getNamespace());
        // 删除集合
        collection.drop();
        System.out.println("drop collection : " + collection.getNamespace());

        // 检索集合列表
        for (String name : database.listCollectionNames()) {
            System.out.println(name);
        }
    }
}

运行 Main 函数,返回以下结果:

Credentials ::MongoCredential{mechanism=null, userName=‘lizhengi’, source=‘lizhengi’, password=, mechanismProperties=}
Connect to database successfully!
MongoDatabase info is : lizhengi
chose collection : lizhengi.lizhengi_test_3

drop collection : lizhengi.lizhengi_test_3
lizhengi
lizhengi_test_2

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MongoDB:在 Java 中使用 MongoDB 的相关文章

随机推荐

  • 安装、升级pip,但是python -m pip install --upgrade pip报错的解决办法

    问题描述 xff1a 按提示输入命令报错 xff1a 在命令窗中我按照要求 xff0c 进行升级 xff0c 敲入 python m pip install upgrade pip xff0c 但是提示我安装失败 解决办法 xff1a 这个
  • 解决windows和虚拟机内不能粘贴

    手工安装Vmware tools方法 这种方法是通过Ubuntu或者Centos7的安装命令直接从网上进行安装 xff0c 打开终端窗口直接执行下列命令即可 xff0c 安装之前要保证虚拟机可以连接外网 xff0c 要能连上软件更新服务器
  • Django表增加字段迁移数据库时报错: (1060, “Duplicate column name ‘‘XXX“)

    出现本问题的原因在于name后的字段在之前已经进行过迁移 xff0c 故而会提示已有重复列 这里不用进行什么删除操作 xff0c 我们将迁移文件中的相关语句注释掉即可 数据库迁移时提示的是django db utils InternalEr
  • Django数据库连接丢失问题的解决方法

    使用django的orm查询方式 xff0c 与数据库连接超时问题解决方法 在Django中使用mysql偶尔会出现数据库连接丢失的情况 xff0c 特别是在异步的时候 xff0c 由于长时间不操作数据库导致 xff0c 错误通常有如下两种
  • Linux服务器:解决报错 E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用) ’问题

    问题描述 xff1a sudo apt get install gcc python dev 解决办法 xff1a sudo rm r f var lib dpkg lock frontend sudo rm r f var lib dpk
  • 外派到某项目帮忙,但受到排斥怎办?

    问题描述 xff1a 类似情况很多 xff0c 列举几个例子 xff1a 1 xff09 A方成立了项目小组负责某项目 xff0c 项目经理是小甲 xff1b B方是利益相关方 xff0c 派小乙到A方加入该项目组 xff0c 美名其曰 x
  • MariaDB 数据库 “Error 1040 too many connection” 解决办法:MariaDB修改最大连接数

    1 mariadb数据库最大连接数 xff0c 默认是151 MariaDB none gt show variables like 39 max connections 39 43 43 43 Variable name Value 43
  • 朱老师Study210开发板刷系统实验(Win10系统)

    最近入手了朱有鹏老师的嵌入式Linux核心课程和Study210开发板 xff0c 开始跟着视频进行嵌入式linux的系统学习 由于视频录的时间很早 xff0c 在跟着视频学习的过程中发现有些细节跟视频里的的对不上 xff08 主要是因为我
  • Python-常用数据类型及其用法汇总(全面、详细、具体、明了)

    整数 xff1a 11 0b11 0o11 0x11 xff08 0b为二进制 xff0c 0o为8进制 xff0c 0x为16进制 xff09 浮点数 xff1a 1 1 3 14 3 14e5 字符串 xff1a hello world
  • mybatis-day02笔记

    1 Mybatis的Dao层实现 1 1 传统开发方式 1 1 1编写UserDao接口 span class token keyword public span span class token keyword interface spa
  • RabbitMQ 订阅模型-路由模式

    订阅模型 路由模式 xff0c 此时生产者发送消息时需要指定 RoutingKey xff0c 即路由 Key xff0c Exchange 接收到消息时转发到与 RoutingKey 相匹配的队列中 在 Direct 模型下 xff1a
  • RabbitMQ:订阅模型-匹配模式

    阅模型 匹配模式 xff0c 相比于前两种订阅模型 xff0c 是更细致的分组 xff0c 允许 在RoutingKey 中使用匹配符 xff1a 匹配一个单词 xff1a 匹配0个或多个单词 RabbitMQ 订阅模型 匹配 xff08
  • 分布式理论协议与算法 第一弹 CAP理论

    CAP 理论 xff0c 也被称为 CAP 协议 xff0c 指的是在一个分布式系统中 xff0c 最多只能同时满足 一致性 xff08 Consistency xff09 可用性 xff08 Availability xff09 和 分区
  • MongoDB:基础概述

    MongoDB 是一个开源的 跨平台的 面向文档的 基于分布式文件存储的数据库系统 xff0c MongoDB 是由 C 43 43 语言开发 xff0c 旨在为 Web 应用提供可扩展的高性能数据存储解决方案 在高负载的情况下 xff0c
  • MongoDB:安装配置

    MongoDB有两个服务器版本 xff1a MongoDB 社区版 和 MongoDB 企业版 此篇主要介绍 MacOS 下 MongoDB 社区版的安装 xff0c 在 版本 下拉列表中 xff0c 选择要下载的 MongoDB 版本 x
  • 我的三周年创作纪念日

    文章目录 一 CSDN 心路历程1 关于第一篇文章2 初拾 CSDN3 重逢 CSDN 二 CSDN 收获1 关于粉丝2 关于文章 三 文章创作工具分享1 Typora2 PicGo3 作图工具 四 憧憬 一 CSDN 心路历程 1 关于第
  • 购买公司股票 = 变相降薪?

    一些公司会扣除你部分薪金 xff0c 美名其曰购买公司股份 xff0c 为了让你放心 xff0c 也会在合同中写明退出机制 xff0c 例如 xff1a 离职是可原额退回 但当你真的要离职的时候 xff0c 这事情就变得很扯皮了 其实让你入
  • MongoDB:常用命令

    本篇内容主要介绍 xff1a MongoDB 数据库命令 MongoDB 集合命令 MongoDB 文档命令 MongoDB 文档查询拓展 文章目录 一 MongoDB 数据库命令1 启动 MongoDB2 连接 MongoDB3 获取帮助
  • 分布式理论协议与算法 第二弹 ACID原则

    ACID 原则是在 1970年 被 Jim Gray 定义 xff0c 用以表示事务操作 xff1a 一个事务是指对数据库状态进行改变的一系列操作变成一个单个序列逻辑元操作 xff0c 数据库一般在启动时会提供事务机制 xff0c 包括事务
  • MongoDB:在 Java 中使用 MongoDB

    除了通过启动 mongo 进程进如 Shell 环境访问数据库外 xff0c MongoDB 还提供了其他基于编程语言的访问数据库方法 MongoDB 官方提供了 Java 语言的驱动包 xff0c 利用这些驱动包可使用多种编程方法来连接并