小白看懂 Mongoose 中的 Model 与 Schema

阅读时长 6 分钟读完

前言

Mongoose 是 MongoDB 的一个 Node.js 的 ORM 框架,使用它可以使得在 Node.js 中操作 MongoDB 数据库变得更加方便和高效。而 Model 和 Schema 也是 Mongoose 中两个重要的概念,本文将详细介绍它们的作用和使用方法,帮助小白更好地理解。

Model

Model 是 Mongoose 中最基本的操作数据的类,可以被理解为是一个高级的数据库操作 API,它提供了 CRUD 以及其他的一些常用操作,如分页查询、排序等功能。在 Mongoose 中,Model 的操作和使用都是基于 Schema 的。Model 的主要作用如下:

  1. 对数据库文档的增删改查进行封装,提供简洁易用的 API,方便开发者进行操作。
  2. 验证和处理传入的数据,确保数据的正确性和完整性。
  3. 对查询结果进行封装和处理,提供方便的方法进行数据处理和格式化。
  4. 管理数据库文档的生命周期,如文档创建、更新和删除等操作。

创建 Model

在 Mongoose 中,每个 Model 都对应一个 MongoDB 中的 Collection,要创建一个 Model,需要先定义对应的 Schema,然后使用 mongoose.model(name, schema) 方法进行创建。

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

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

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

在这个例子中,我们创建了名为 User 的 Model,它对应的是 MongoDB 中的 users 集合。用户数据的字段包括 nameageemail,分别对应的类型是 StringNumberString

使用 Model 进行数据操作

通过 Model,我们可以方便地进行 CRUD 操作。下面的代码展示了如何使用 Model 进行数据增删改查操作。

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

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

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

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

在这个例子中,我们使用了 save()find()updateOne()deleteOne() 等 Model 方法进行了数据操作。

Schema

Schema 是定义 Model 中数据结构的一种方式,它使用了一种类似于 JSON 的格式来定义数据结构,包括字段名称、类型、默认值、验证规则等信息。Schema 的主要作用如下:

  1. 定义数据结构,包括字段名称、类型、默认值、验证规则等信息。
  2. 管理数据的修改、验证等操作。
  3. 提供对数据的读取和获取等操作。

定义 Schema

下面的代码展示了如何定义一个包含 nameageemail 字段的 User Schema。

在这个例子中,我们定义了一个包含 nameageemail 字段的 Schema,每个字段的类型分别为 StringNumberString

字段属性

在 Schema 中,字段不仅可以设置基本的类型,还可以设置一些属性来确保数据的完整性和正确性。下面是几个常用的字段属性。

required

用来指定该字段是否为必需字段。

在这个例子中,我们指定了 name 字段必须有值,否则在保存数据时会抛出错误。

default

用来指定该字段的默认值。

在这个例子中,我们指定了 age 字段的默认值为 18,如果没有为该字段指定具体值,在保存数据时将会默认为 18。

unique

用来指定该字段是否唯一。

在这个例子中,我们指定了 email 字段必须是唯一的,如果在保存数据时出现了重复的 email,将会抛出错误。

验证数据

除了基本的字段类型和属性外,Schema 还提供了一些验证规则,用来确保数据的正确性和完整性。

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

在这个例子中,我们使用了 minlengthmaxlengthminmaxmatch 等验证规则,分别用来验证 nameageemail 字段的数据。

总结

Model 和 Schema 是 Mongoose 中两个重要的概念,Model 提供了对数据库的 CRUD 操作,Schema 定义了数据结构和验证规则。使用 Model 和 Schema 可以方便地操作 MongoDB 数据库,让开发工作变得更加高效和便捷。希望本文能够帮助小白更好地理解 Model 和 Schema 在 Mongoose 中的使用方法,为日后的开发工作带来帮助。

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

纠错
反馈