Mongoose 中的 Schema 类型详解及其应用场景

阅读时长 8 min read

在 Node.js 的 MongoDB 驱动程序中,Mongoose 是一个非常流行的对象文档映射 (Object Document Mapping, ODM) 库。它能让我们在 Node.js 中更方便地操作 MongoDB 数据库,同时也提供了一些强大的功能,比如数据验证、中间件等。在 Mongoose 中,Schema 是非常重要的一个概念,它定义了文档的结构和属性,也是对数据进行验证和存储的基础。本文将详细介绍 Mongoose 中的 Schema 类型及其应用场景。

Schema 类型

Mongoose 中的 Schema 类型有以下几种:

String

字符串类型,用于存储字符串,可以设置默认值、最大长度、最小长度等。

Number

数字类型,用于存储数字,可以设置默认值、最大值、最小值等。

Date

日期类型,用于存储日期,可以设置默认值、最小日期、最大日期等。

Boolean

布尔类型,用于存储 true/false 值,可以设置默认值。

ObjectId

ObjectId 类型,用于存储 MongoDB 中的 ObjectId 值,可以设置默认值。

Array

数组类型,用于存储数组,可以设置数组元素的类型、默认值等。

Mixed

混合类型,用于存储任意类型的数据,不做数据验证。

Buffer

缓冲区类型,用于存储二进制数据,比如图片、文件等。

应用场景

Mongoose 中的 Schema 类型可以根据实际需求进行灵活选择和组合,以下是一些常见的应用场景:

数据验证

Schema 类型可以用于对数据进行验证,比如设置字符串的最大长度、数字的最小值等。在保存数据时,如果不符合验证规则,将会抛出错误。

数据转换

Schema 类型可以用于将存储的数据进行转换,比如将字符串转换为数字、将日期字符串转换为 Date 对象等。

数据默认值

Schema 类型可以用于设置数据的默认值,当保存数据时,如果没有设置相应的属性,将会使用默认值。

数据关联

Schema 类型可以用于定义数据之间的关系,比如将文章和作者进行关联。

示例代码

上面的示例代码演示了如何定义一个包含作者和文章的数据模型,并将它们关联起来。在保存文章时,我们使用了默认值和数组类型。在查询文章时,我们使用了 populate() 方法将作者信息一并查询出来。

Source: FunTeaLearn,Please indicate the source for reprints https://funteas.com/post/67da6005a941bf7134250e4e