公告推出 MongoDB 8.0,史上最快的 MongoDB!了解更多 >>推出 MongoDB 8.0,史上最快的 MongoDB!>>

鉴于Java和MongoDB的流行程度,它们配合得很好并不足为奇。

无论您是在本地或本地化MongoDB安装上开发,还是首先使用MongoDB Atlas(MongoDB Atlas)进行云服务,MongoDB Java驱动和周围的生态系统都会使您轻松地将MongoDB集成到开发过程中。

本文将深入探讨以下内容

  • 为什么要在Java中使用MongoDB?
  • 开始使用Java和MongoDB
  • 创建您的第一个Atlas集群
  • 连接到您的Atlas集群
  • 文档和集合
  • CRUD操作和MQL
  • 与其他技术的集成
  • 获取帮助
  • 常见问题解答

为什么要在Java中使用MongoDB?

Java是最受欢迎的编程语言之一,这并非没有原因。Java首次发布于1995年,自那时起一直在开发者社区中占据重要地位。它非常适合多个行业,包括金融服务医疗保健甚至公共部门。Java是面向对象的WORA(一次编写,到处运行),因此它可以在所有支持该语言的平台运行,而无需重新编译。

MongoDB在多个列表中占据着最受欢迎的NoSQL数据库技术的榜首。它是一种文档数据库,用于构建高度可用和可扩展的互联网应用程序。MongoDB成立于2007年,在开发者社区中拥有全球的影响力。MongoDB一直致力于为开发者提供出色的用户体验,这使得MongoDB成为了全球开发者的最爱。

如果您正在构建新项目并且需要数据库,建议从一开始就使用MongoDB Atlas。Atlas将为您提供一款全托管、云原生数据库服务,附带多种功能,包括全文搜索图表合作伙伴集成等。如果您是为iOS或Android开发,Atlas设备同步可以让移动同步变得简单。您甚至可以直接在MongoDB Atlas上构建基于GraphQL的Web应用程序。

开始使用Java和MongoDB

请确保您已安装Java 8(或更高版本),并准备好您的首选IDE。

您首先需要声明对最新版本的MongoDB Java驱动程序的依赖。有关如何使用Gradle或Maven以及示例代码的说明,请参阅此处

创建您的第一个Atlas集群

一旦您的Java项目依赖项全部设置完毕,您将需要一个数据库。

您可以通过遵循本指南在MongoDB Atlas上创建账户并创建一个免费层集群。它还将向您展示如何插入样本数据。

连接到您的Atlas集群

在上一节之后,您应该在Atlas中部署了一个新的MongoDB集群,一个新的数据库用户和密码,以及一些样本数据集已加载到您的集群中。

现在,是时候使用您的驱动程序连接到数据库了。为了建立数据库连接,您的驱动程序需要有关如何连接的说明。这些说明称为连接字符串。您可以通过进入您的Atlas账户,导航到数据库部分,并点击“连接”,来获取您在上一步骤中创建的集群和用户名的连接字符串。

将弹出一个提示您选择您的驱动程序和版本的窗口。一旦您填写了这两个下拉菜单,您就可以使用生成的数据库连接字符串(它将以“mongdb+srv://”开头)来连接到您的集群。请注意,您需要替换自己的用户名和密码!

您可以使用此连接字符串从您的应用程序中运行对MongoDB集群的查询。更详细的说明和示例代码可以在此处找到。

文档和集合

documents in mongodb with java

与SQL数据库不同,MongoDB将信息存储在文档集合中。

文档

MongoDB将数据记录存储为BSON 文档。BSON是JSON文档的二进制表示形式,尽管它包含比JSON更多的数据类型。文档由字段值对组成,具有以下结构

{   
    field1: value1,   
    field2: value2,   
    field3: value3,   
    ...   
    fieldN: valueN
}

与字段相关联的值可以是任何BSON数据类型,包括其他文档、数组,甚至文档数组。字段名称本身是字符串。

与关系数据库中的标准行相比,文档更加灵活,因为它们提供动态模式而不是强制模式(尽管如果您想的话,可以使用MongoDB进行模式验证)。

集合

MongoDB 在集合中存储文档。集合类似于关系数据库中的表。有关如何创建集合以及其他有关集合的信息,您可以查看文档此处

CRUD 操作和 MongoDB 查询语言

CRUD(创建、读取、更新和删除)操作是您可能希望对数据库执行的四种基本操作。在 MongoDB 的情况下,您可以使用 CRUD 操作插入文档、编写匹配文档的查询、更新文档以及删除文档。您可以通过使用 MQL(MongoDB 查询语言)来实现这一点。与 SQL 语句不同,MQL 使用与文档相同的语法,这使得它对高级查询既直观又易于使用。

您可以在MongoDB 开发者中心找到完整的 CRUD 教程以及使用 Java 驱动程序进行每个操作的示例代码。

与其他技术的集成

您的技术栈可能不仅仅是您的 IDE 和您最喜欢的 Java 版本。以下是一些您可以使用 MongoDB 的许多方式中的一些。

Spring Data MongoDB

Spring Data MongoDB 是旨在为新的数据存储提供熟悉和一致基于 Spring 的编程模型,同时保留特定存储功能和服务能力的Spring Data 项目的一部分。它提供了与 MongoDB 数据库的集成、一个以 POJO 为中心的模型来与 MongoDB 集合交互,以及更多功能。

云计算平台

当涉及到公共云提供商时,有三个主要的提供商值得考虑——亚马逊网络服务(AWS)、微软 Azure 和谷歌云平台(GCP)。MongoDB Atlas 支持所有这三个主要的云服务提供商。它甚至支持多云和多区域部署。有关更多信息,请在此处学习

基础设施自动化

Terraform 是一个开源的基础设施即代码软件工具,它使您能够安全且可预测地创建、更改和改进基础设施。HashiCorp Terraform MongoDB Atlas Provider 是由 HashiCorp 构建的一项官方插件,它允许您使用 Terraform 在任何云服务提供商上配置、管理和控制 Atlas 配置。

监控服务

Atlas 可以将有关您的项目的指标数据发送到 Datadog 仪表板或您的 Prometheus 实例。您还可以配置 Atlas 将信息发送到 Flowdock、Microsoft Teams、OpsGenie、PagerDuty、Slack 等。您可以在此找到更多详细信息。

获取帮助

Getting help with java

使用 MongoDB 的最好部分是充满活力的 Java 社区,该社区包括具有不同 Java 驱动程序经验的用户。获取一般问题的支持的最佳方式是使用 MongoDB 社区论坛

如果您遇到意外错误,您认为您已发现 Java 驱动程序的错误,或者您有功能请求,请在 JAVA 项目上打开一个 JIRA 工单。您可以在文档中找到如何做到这一点的说明。Java 驱动程序和核心服务器的错误报告都是公开的。

常见问题解答 (FAQ)

MongoDB 是一个好的 Java 数据库吗?

MongoDB 是一个兼容多种语言,包括 Java 的开发者数据平台。MongoDB 对于用 Java 编写的应用程序来说是一个很好的选择。

我可以为 Java 驱动程序做出贡献吗?

我们很高兴接受贡献以帮助改进驱动程序。我们将指导用户贡献,确保它们符合驱动程序代码库的标准。请确保任何PR都包含文档、测试并通过检查。

如果我想要使用SQL呢?

请注意,SQL查询的支持仅作为预览功能提供。您可以使用Atlas SQL查询联合数据库。要使用SQL界面运行查询,您可以使用MongoDB JDBC驱动程序(可在此处找到)或BI工具的命名连接器之一。关于此预览功能的更多详细信息,请参阅此处文章。

我可以使用POJOs(普通Java对象)代替文档吗?

如果您想使用自己的普通Java对象(POJOs)而不是文档,可以使用Java驱动程序内置的POJO支持。代码示例和完整教程可在此处找到。

准备好开始了吗?

免费使用云中的MongoDB!注册MongoDB Atlas。无需信用卡。