Mongoose 如何使用 Schema 类型?

阅读时长 5 分钟读完

Mongoose 是一个 Node.js 下的 MongoDB 驱动程序,它提供了一系列强大的功能,帮助我们更轻松地处理 MongoDB 数据库操作。在 Mongoose 中,Schema 是一个重要的概念,它定义了 MongoDB 中某个 Collection 的结构以及数据类型。

在本篇文章中,我们将探讨 Mongoose 中 Schema 的使用方法,包括如何定义 Schema 模型以及如何使用 Schema 类型。

Schema 的定义

下面是一个简单的 Schema 定义:

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

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

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

从上面的代码可以看出,Schema 的定义需要通过 mongoose.Schema 类,定义了一个 nameagegender 三个字段,它们的数据类型分别是 StringNumberString

在定义好 Schema 后,我们可以使用 mongoose.model 方法创建一个新的 Model,这个 Model 是通过 Schema 创建的。需要注意,Model 的名称需要严格按照大写驼峰命名法,第一个参数表示集合的名称。这样我们就可以通过 UserModel 对象来对 MongoDB 中的数据进行增删改查操作。

Schema 类型

Mongoose 提供了很多的 Schema 类型,如 String、Number、Date、Boolean、Buffer、Mixed、ObjectId、Array 等。

在上面的例子中,我们使用了 StringNumber 两种类型。

下面我们将介绍一些常用的 Schema 类型,以及它们的使用方法和属性。

String

String 类型是用来存储字符串的,接受一个可选参数用来设置字符串的长度:

在上面的例子中,我们设置了 username 字段必须有值,并且长度不能超过 50。

Number

Number 类型是用来存储数字的,接受两个可选参数 minmax,用来设置数字的最小值和最大值。

在上面的例子中,我们设置了 age 字段必须是一个大于等于 18,小于等于 100 的数字。

Date

Date 类型是用来存储日期时间类型数据的,它没有可选参数。

在上面的例子中,我们设置了 createdTime 字段的默认值为当前时间。

Boolean

Boolean 类型是用来存储布尔类型数据的,它没有可选参数。

在上面的例子中,我们设置了 isActive 字段的类型为 Boolean

ObjectId

ObjectId 类型是用来存储 MongoDB 的 _id 字段的,它没有可选参数。

在上面的例子中,我们设置了 _id 字段的类型为 ObjectId,这样就可以直接使用 new mongoose.Types.ObjectId() 来生成 _id 的值。

Array

Array 类型是用来存储数组类型数据的,它接受一个可选参数 items,用来设置数组元素的类型:

在上面的例子中,我们设置了 scores 字段必须是一个数字类型的数组,如果未传入具体的值,则默认为空数组。

Mixed

Mixed 类型是用来存储任意类型的数据的,它没有可选参数。

在上面的例子中,我们设置了 profile 字段可以存储任意类型的数据。

总结

本文介绍了如何使用 Mongoose 中的 Schema 类型,我们可以通过定义 Schema 以及使用 Schema 类型来控制 MongoDB 数据库中的数据类型,从而更好地进行增删改查操作。

如果你想了解更多 Mongoose 的使用方法,可以参考官方文档:https://mongoosejs.com/docs/index.html

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

纠错
反馈