学习 MongoDB:从入门到进阶

阅读时长 8 分钟读完

在前端开发中,数据存储是必不可少的一环,而 MongoDB 是一款非常流行的 NoSQL 数据库,其具有高灵活性、易扩展性、高性能等优点,在前端领域也有着广泛应用。本文将从入门到进阶的角度,为大家介绍 MongoDB 的相关知识。

MongoDB 入门

什么是 MongoDB

MongoDB 是一个基于分布式文件存储的数据库系统,是一个面向文档(BSON)的 NoSQL 数据库。相比传统的关系型数据库(如 MySQL),MongoDB 不需要预定义表结构,可以自由存储复杂的文档数据类型。

安装 MongoDB

首先需要在官网下载 MongoDB,选择适合自己的版本进行安装,接下来我们来看一下用 Homebrew 进行安装的步骤:

  1. 安装 Homebrew

打开终端并输入以下代码,安装 Homebrew:

  1. 安装 MongoDB

使用 Homebrew 安装 MongoDB,输入以下代码:

  1. 启动 MongoDB

终端运行 mongod 命令,启动 MongoDB:

数据库基本操作

启动 MongoDB 后,我们可以通过 MongoDB 提供的命令行工具 mongo 进行数据库的基本操作。

  1. 查看数据库列表
  1. 创建一个新的数据库
  1. 查看当前使用的数据库
  1. 插入一条文档数据
  1. 查询文档数据

MongoDB 进阶

数据建模

在 MongoDB 中,数据是以文档的形式存储的,因此在数据建模的过程中需要考虑文档的结构和属性。

文档结构

MongoDB 中的文档是由键值对构成,键是字符串类型,值可以是基本数据类型,也可以是嵌套的文档。

例如,一个文档可以有如下的结构:

-- -------------------- ---- -------
-
  ------- ------
  ------ ---
  ---------- -
    ----------- ----------
    ------- ----------
    ----------- ----------
    --------- ------- --- --
  -
-

属性类型

MongoDB 支持的数据类型有:

  • 基本数据类型:String、Number、Boolean、Null
  • 数组类型:Array
  • 日期类型:Date
  • 对象 ID:ObjectID
  • 二进制数据:BinData
  • 正则表达式:RegularExpression
  • JavaScript 代码:Code
  • 符号:Symbol
  • 时间戳:Timestamp
  • 最小值和最大值:MinKey、MaxKey

数据模式设计

在进行数据建模时,需要考虑以下几个问题:

  • 数据库需求:需要存储哪些数据?
  • 数据类型:每个属性应该是什么数据类型?
  • 数据模式:如何管理它们之间的关系?

以下是一个学生的数据模式设计示例:

-- -------------------- ---- -------
-
  ------- -------
  ------ ---
  --------- -------
  -------- -
    ------- ------ ---
    ---------- -----
  --
  --------- -
    -
      ---------- --------------
      -------- --
    --
    -
      ---------- ----------
      -------- --
    -
  -
-

数据 CURD 操作

在 MongoDB 中,CURD 操作(增删改查)是基本操作,我们可以通过如下的方式进行数据的操作。

增加文档

使用 insertOne() 方法插入一个文档:

查找文档

使用 find() 方法查找一个文档:

通过 pretty() 方法使输出格式更加清晰可读:

更新文档

使用 updateOne() 方法更新一个文档:

删除文档

使用 deleteOne() 方法删除一个文档:

Node.js 中使用 MongoDB

在 Node.js 中,我们可以使用第三方库 mongoose 来方便地对 MongoDB 进行 CURD 操作。

安装 mongoose

使用 npm 安装 mongoose:

连接到 MongoDB

通过 mongoose 连接到 MongoDB:

-- -------------------- ---- -------
----- -------- - -------------------

--------------------------------------------------- -
  ---------------- -----
  ------------------- -----
  ----------------- -----
--

----- -- - -------------------

-------------- --------------------------- ----------- ---------

--------------- ---------- -
  ---------------------- -- ---------
--

定义 Schema

在使用 mongoose 前,需要先定义数据模式的 Schema:

-- -------------------- ---- -------
----- -------- - -------------------

----- ------------- - --- -----------------
  ----- -------
  ---- -------
  ------- -------
  ------ -
    ----- -------
    -------- ------
  --
  ------- -
    -
      -------- -------
      ------ ------
    -
  -
--

----- ------- - ------------------------- --------------

-------------- - -------

增加数据

通过模型来创建数据:

-- -------------------- ---- -------
----- ------- - --- ---------
  ----- -------
  ---- ---
  ------- -------
  ------ -
    ----- ------ ---
    -------- -----
  --
  ------- -
    -
      -------- --------------
      ------ --
    --
    -
      -------- ----------
      ------ --
    -
  -
--

--------------

查询数据

通过模型来查询数据:

更新数据

通过模型来更新数据:

删除数据

通过模型来删除数据:

总结

本文从入门到进阶的角度,为读者介绍了 MongoDB 的相关知识,包括 MongoDB 的基本概念、安装、使用、数据建模、CURD 操作以及在 Node.js 中使用 MongoDB。MongoDB 的开销一般比 SQL 高,但使用更简便,对于大小敏感的应用程序,MongoDB是一种高性能、低延迟的选择。通过深入学习 MongoDB,我们可以更好地应用它来实现我们的业务需求。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64fea34b95b1f8cacdd57bcb

纠错
反馈