Mongoose 中的 Schema 类型详解

阅读时长 4 分钟读完

Mongoose 是一款开源的 Node.js MongoDB ODM(Object-Document Mapping),它是以一种优雅的方式将 Node.js 和 MongoDB 结合在一起。在使用 Mongoose 时,我们需要定义每个数据模型的结构,这个结构在 Mongoose 中被称作 Schema。一个 Mongoose Schema 提供了我们在创建和查询 MongoDB 文档时所需的一些额外的功能。

在 Mongoose 中,不同数据值可以采用不同的 Schema 类型进行定义,因此本文将从 Schema 类型的角度,为大家详细介绍 Mongoose 中常用的 schema 类型,以及如何使用这些类型定义数据模型。

类型列表

  • String:字符串类型
  • Number:数字类型
  • Date:日期类型
  • Buffer:二进制类型
  • Boolean:布尔类型
  • Mixed:混合类型,接受任何类型的数据
  • ObjectId:此类型是用来定义 MongoDB 文档 _id 属性的,通常用于关联文档
  • Array:数组类型

String

String 类型对应 JavaScript 的 String 类型。在 Mongoose 中,String 的长度默认为 255 个字符,如果需要可在定义时指定最大长度,例如:

Number

Number 类型对应 JavaScript 的 Number 类型。在 Mongoose 中,值支持整型和浮点型,可以通过 minmax 来限制数值范围:

Date

Date 类型对应 JavaScript 的 Date 类型。在 Mongoose 中,Date 可以被指定为时间戳或 ISODate 字符串,例如:

Buffer

Buffer 类型对应于 Node.js 中 buffer 类型,在 Mongoose 中通常用于存储二进制数据。例如:

Boolean

Boolean 类型对应 JavaScript 的 Boolean 类型。在 Mongoose 中,Boolean 的默认值是 false:

Mixed

Mixed 类型接收任何类型的数据,可以用于存储复杂的非结构化数据,例如:

ObjectId

ObjectId 类型是用来定义 MongoDB 文档 _id 属性的,通常用于关联文档。例如:

Array

Array 类型可用于存储数组类型的数据,可以用来定义列表、一对多关系等。例如:

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

总结

本文介绍了 Mongoose 中常用的 schema 类型以及每个类型的定义和使用方式,这些类型的使用可以让我们在定义数据模型时更加规范和严谨,同时也为我们进行 CRUD 操作提供了更多的开发效率。

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

纠错
反馈