前言
在 Node.js 开发中,Mongoose 是一个非常实用且流行的模型驱动对象工具,开发者可以通过 Mongoose 操作 MongoDB 数据库非常方便,而其中 Schema 的使用则是开发中必不可少的一项技能。Schema 可以定义表的结构以及表的字段,这篇文章就详细地解析了 Mongoose 中的 Schema 类型。
Schema
在 Mongoose 中,Schema 是一个类,用来定义数据模型。通过定义 Schema,开发者可以在 Mongoose 中进行模型操作,例如创建、查询、更新和删除数据等。Schema 可以定义表的结构和表的字段,下面是一个示例:
-- -------------------- ---- ------- ----- -------- - -------------------- ----- ------ - ---------------- ----- ------------- - --- -------- ----- ------- ---- ------- ------- -------- -------- - ----- ----- -------- -------- - --- ----- ------- - ------------------------- ---------------
上面的示例中,我们定义了一个包含 4 个字段的 Example 模型。字段名分别是 name
、age
、isMale
和 created
,它们的类型分别是 String、Number、Boolean 和 Date。其中 created
字段是一个默认字段,它的类型是 Date,且默认为当前时间。
Schema.Types
Schema.Types 是 Mongoose 中包含的所有数据类型,下面对常见的几个 Schema.Types 进行详细讲解:
String
String 类型用来表示文本数据,默认长度为 255 个字符,如果需要更长的文本则可以设置 maxlength
。示例如下:
const nameSchema = new Schema({ name: { type: String, required: true, maxlength: 50 } });
Number
Number 类型用来表示数字数据,默认精度为 32 位,如果需要更高的精度则可以设置 min
、max
。示例如下:
const ageSchema = new Schema({ age: { type: Number, min: 0, max: 150, required: true } });
Boolean
Boolean 类型用来表示布尔类型,只有两种值:true
和 false
。示例如下:
const isMaleSchema = new Schema({ isMale: Boolean });
Date
Date 类型用来表示日期类型,它使用 JavaScript 中的 Date 对象来表示时间。示例如下:
const createdSchema = new Schema({ created: Date });
Array
Array 类型用来表示数组类型,它可以嵌套其他类型。示例如下:
const hobbiesSchema = new Schema({ hobbies: [{ type: String }] });
Mixed
Mixed 类型用来表示混合类型,它可以接受任何类型的数据。示例如下:
const mixedSchema = new Schema({ mixed: Schema.Types.Mixed });
ObjectId
ObjectId 类型用来表示 MongoDB 的 _id 类型,它可以连接不同集合中的文档。示例如下:
const exampleSchema = new Schema({ name: String, author: { type: ObjectId, ref: "Author" } });
上面的示例中,我们使用了 ref
属性将 Example 模型与 Author 模型关联起来。
总结
本篇文章详细地解析了 Mongoose 中的 Schema 类型。通过使用不同的 Schema.Types,我们可以定义不同类型的数据模型,并进行相关操作。在开发过程中,开发者需要对不同的 Schema.Types 有一定的了解,才能够快速地开发出高质量的应用程序。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64d3552eb5eee0b525ae82d8