公告MongoDB 8.0 隆重推出,这是有史以来最快的MongoDB!了解详情 > >>
公告Voyage AI 与 MongoDB 携手合作,致力于在 Atlas 上提供更准确和更值得信赖的 AI 应用。了解更多 > >>

Java 和 MongoDB

免费试用 MongoDB Atlas

鉴于 Java 和 MongoDB 的流行,它们能良好地协同工作也就不足为奇了。

无论您是在本地还是本地部署的 MongoDB 安装上进行开发,还是通过 MongoDB Atlas 采用云优先策略,MongoDB Java Driver 及其周边生态系统都能让您轻松将 MongoDB 集成到开发流程中。

在本文中,我们将深入探讨以下内容:

为什么将 MongoDB 与 Java 一起使用?

Java 是最流行的编程语言之一,这是有充分理由的。Java 首次发布于 1995 年,此后在开发者社区中一直保持着相当大的影响力。它非常适合许多行业,包括金融服务、医疗保健,甚至是公共部门。Java 是面向对象的,也是 WORA(一次编写,在任何地方运行),因此它可以在所有支持该语言的平台上运行,而无需重新编译。

MongoDB 在多个榜单中均位居最受欢迎的 NoSQL 数据库技术之首。它是一款文档数据库,用于构建高可用且可扩展的互联网应用程序。MongoDB 成立于 2007 年,在开发者社区拥有广泛的全球追随者。MongoDB 始终专注于为开发者提供卓越的用户体验,再加上其所有其他功能,使 MongoDB 深受全球开发者的青睐。

如果您正在构建新产品并且需要数据库,不妨从一开始就考虑使用 MongoDB Atlas。Atlas 将为您提供完全托管的云原生数据库服务,并配备诸多功能,包括全文搜索、图表、合作伙伴集成等。如要面向 iOS 或 Android 进行构建,Atlas Device Sync 能让移动同步变得轻而易举。您甚至可以直接在 MongoDB Atlas 之上基于 GraphQL 构建 Web 应用程序。

Java 和 MongoDB 入门

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

您首先需要做的是声明对最新版本 MongoDB Java 驱动程序的依赖。有关如何使用 Gradle 或 Maven 执行此操作的说明以及示例代码,可以在此处找到。

创建第一个 Atlas 集群

设置好 Java 项目依赖项后,您需要数据库。

您可以按照本指南在 MongoDB Atlas 上创建帐户并创建免费套餐集群。 它还将向您展示如何插入样本数据。

连接到 Atlas 集群

在上一个章节完成之后,您应该已经在 Atlas 中部署了新的 MongoDB 集群、新的数据库用户和密码,并将一些示例数据集加载到了您的集群中。

现在,该使用驱动程序连接到数据库了。为了建立数据库连接,您的驱动程序需要有关如何连接的说明。这些指令称为连接字符串。通过登录您的 Atlas 账户,导航到数据库部分,然后点击“连接”,您就可以获取您在上一步中创建的集群和用户名的连接字符串。

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

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

文档和集合

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

文档(Document)

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

 

 

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

文档比关系数据库中的标准行灵活得多,因为它们提供的是动态模式,而不是强制执行的模式(当然,如果您需要,可以使用 MongoDB 进行模式验证!)。

集合

MongoDB 将文档存储在集合中。集合就像关系数据库中的表。有关如何创建集合的更多详细信息,以及有关集合的其他信息,请查看此处的文档。

CRUD 操作和 MongoDB 查询语言

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

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

与其他技术的集成

您的技术栈可能不仅仅是您的 IDE 和您钟爱的 Java 版本。以下只是您可以使用 MongoDB 的多种方式中的几种。

Spring Data MongoDB

Spring Data MongoDB 是伞形项目 Spring Data 的一部分,旨在为新的数据存储提供熟悉且一致的基于 Spring 的编程模型,同时保留特定于存储的特性和功能。它提供了与 MongoDB 数据库的集成、用于与 MongoDB 集合交互的以 POJO 为中心的模型等。

MongoDB Extension for Hibernate ORM

Hibernate 的创建旨在将面向对象的 Java 代码映射到关系数据库,同时适应其约束。这使 Java 开发人员能够更加专注于编写代码,减少将 Java 对象转换为关系持久化这一繁琐且通常容易出错的过程。MongoDB Extension for Hibernate ORM 现已正式发布,Java 开发者借此可以灵活自由地利用 MongoDB 的文档模型和 Hibernate 的用户友好功能(包括实体注解、Hibernate 查询语言 (HQL) 支持、条件查询等)来构建现代化应用程序。该扩展还提供 JOIN 支持(INNER 和 LEFT OUTER)、乐观锁定、Spring Boot 自动配置(无需手动覆盖),以及改进的异常消息和日志记录,使其为生产工作负载做好准备。

云计算平台

谈到公共云提供商,脑海中会浮现出三个主要的提供商:Amazon Web Services (AWS)、Microsoft Azure 和 Google Cloud Platform (GCP)。MongoDB Atlas 支持所有三个主要的云服务提供商。它甚至支持多云和多区域部署。点击了解详情。

基础设施自动化

Terraform 是一款开源 Infrastructure as Code 软件工具,使您能够安全、可预测地创建、更改和改进基础架构。HashiCorp Terraform MongoDB Atlas Provider 是由 HashiCorp 构建的官方插件,使您能够使用 Terraform 在任何云提供商上预配、管理和控制 Atlas 配置。

监控服务

Atlas 可以将关于项目的指标数据发送到 Datadog 仪表盘或您的 Prometheus 实例。 您也可以将 Atlas 配置为向 Flowdock、Microsoft Teams、OpsGenie、PagerDuty、Slack 等发送信息。 有关这方面的详细信息,请点击此处。

获取帮助

使用 MongoDB 的一大优势在于拥有充满活力的 Java Community,其中包括对 Java 驱动程序具有各级别经验的用户。获取一般问题支持的推荐方法是使用 MongoDB Community 论坛。

如果您遇到意外错误,认为自己发现了 Java 驱动程序中的错误,或者有功能请求,请在 JAVA 项目上打开 JIRA 工单。您可以参考文档了解相关说明。Java 驱动程序和核心服务器的错误报告均已公开。

常见问题解答

立即开始使用 Atlas

只需几秒就能上手。我们的免费集群附带 512 MB 的存储空间,因此您可以使用示例数据进行试用并了解我们的平台。
免费试用联系销售团队
开始使用:
  • 全球超过 125 个地区
  • 示例数据集
  • 永远在线身份验证
  • 端到端加密
  • 命令行工具