Mongoose 是一个 Node.js 下的 MongoDB 驱动程序,它提供了一系列强大的功能,帮助我们更轻松地处理 MongoDB 数据库操作。在 Mongoose 中,Schema 是一个重要的概念,它定义了 MongoDB 中某个 Collection 的结构以及数据类型。
在本篇文章中,我们将探讨 Mongoose 中 Schema 的使用方法,包括如何定义 Schema 模型以及如何使用 Schema 类型。
Schema 的定义
下面是一个简单的 Schema 定义:
-- -------------------- ---- ------- ----- -------- - -------------------- ----- ------ - ---------------- ----- ---------- - --- -------- ----- ------- ---- ------- ------- ------ --- ----- --------- - ---------------------- ------------
从上面的代码可以看出,Schema 的定义需要通过 mongoose.Schema
类,定义了一个 name
,age
和 gender
三个字段,它们的数据类型分别是 String
,Number
和 String
。
在定义好 Schema 后,我们可以使用 mongoose.model
方法创建一个新的 Model,这个 Model 是通过 Schema 创建的。需要注意,Model 的名称需要严格按照大写驼峰命名法,第一个参数表示集合的名称。这样我们就可以通过 UserModel
对象来对 MongoDB 中的数据进行增删改查操作。
Schema 类型
Mongoose 提供了很多的 Schema 类型,如 String、Number、Date、Boolean、Buffer、Mixed、ObjectId、Array 等。
在上面的例子中,我们使用了 String
和 Number
两种类型。
下面我们将介绍一些常用的 Schema 类型,以及它们的使用方法和属性。
String
String 类型是用来存储字符串的,接受一个可选参数用来设置字符串的长度:
const userSchema = new Schema({ username: { type: String, required: true, maxlength: 50 } });
在上面的例子中,我们设置了 username
字段必须有值,并且长度不能超过 50。
Number
Number 类型是用来存储数字的,接受两个可选参数 min
和 max
,用来设置数字的最小值和最大值。
const userSchema = new Schema({ age: { type: Number, min: 18, max: 100 } });
在上面的例子中,我们设置了 age
字段必须是一个大于等于 18,小于等于 100 的数字。
Date
Date 类型是用来存储日期时间类型数据的,它没有可选参数。
const userSchema = new Schema({ createdTime: { type: Date, default: Date.now() } });
在上面的例子中,我们设置了 createdTime
字段的默认值为当前时间。
Boolean
Boolean 类型是用来存储布尔类型数据的,它没有可选参数。
const userSchema = new Schema({ isActive: Boolean });
在上面的例子中,我们设置了 isActive
字段的类型为 Boolean
。
ObjectId
ObjectId 类型是用来存储 MongoDB 的 _id
字段的,它没有可选参数。
const userSchema = new Schema({ _id: ObjectId, name: String, age: Number, gender: String });
在上面的例子中,我们设置了 _id
字段的类型为 ObjectId
,这样就可以直接使用 new mongoose.Types.ObjectId()
来生成 _id
的值。
Array
Array 类型是用来存储数组类型数据的,它接受一个可选参数 items
,用来设置数组元素的类型:
const userSchema = new Schema({ scores: { type: [Number], default: [] } });
在上面的例子中,我们设置了 scores
字段必须是一个数字类型的数组,如果未传入具体的值,则默认为空数组。
Mixed
Mixed 类型是用来存储任意类型的数据的,它没有可选参数。
const userSchema = new Schema({ profile: Mixed });
在上面的例子中,我们设置了 profile
字段可以存储任意类型的数据。
总结
本文介绍了如何使用 Mongoose 中的 Schema 类型,我们可以通过定义 Schema 以及使用 Schema 类型来控制 MongoDB 数据库中的数据类型,从而更好地进行增删改查操作。
如果你想了解更多 Mongoose 的使用方法,可以参考官方文档:https://mongoosejs.com/docs/index.html。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6469b733968c7c53b098e22c