Mongoose 的 Schema 和 Model 器使用详解

阅读时长 4 分钟读完

Mongoose 是一个用于 Node.js 和 MongoDB 的 elegant ORM(对象关系映射),可以让我们更方便地在 Node.js 中使用 MongoDB 数据库。Mongoose 的 schema 和 model 器是 Mongoose 中的两个核心概念,本文将详细讲解如何使用它们。

Mongoose Schema

在 Mongoose 中,schema 是用来定义 MongoDB 文档结构的。一个 schema 通常包含了字段名称、数据类型、默认值、验证规则等信息。

下面是一个示例的用户 schema:

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

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

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

在上面的代码中,我们定义了一个包含了 name、email、password 和 created_at 字段的用户 schema,其中 name、email 和 password 都是必填字段,email 字段必须是唯一的、小写的字符串类型,created_at 字段使用默认值 Date.now。

Mongoose Model

Mongoose 的 model 器是在 schema 基础上生成的模型,通过使用它,我们可以对 MongoDB 数据库进行增删改查等操作。

下面是一个利用上面的用户 schema 创建的用户模型:

在上面的代码中,我们使用了 Mongoose 的 model 方法来创建了一个名为 User 的模型,同时将用户 schema 作为参数传入 model 方法。

可以使用以下代码来创建一个新用户:

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

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

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

我们可以使用 save 方法将上述用户保存到 MongoDB 数据库中。

可以使用以下代码查询用户数据:

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

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

在上面的代码中,我们使用 find 方法查询了用户数据。注意,第一个参数是一个空对象,这意味着我们没有对用户进行任何筛选,将返回所有用户数据。

总结

在本文中,我们详细讲解了 Mongoose 的 schema 和 model 器。通过使用 schema,我们可以定义 MongoDB 文档结构的字段名称、数据类型、默认值、验证规则等信息;通过使用 model 器,我们可以对 MongoDB 进行增删改查等操作。希望这篇文章能够对学习和使用 Mongoose 有所帮助。

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

纠错
反馈