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。
Source: FunTeaLearn,Please indicate the source for reprints https://funteas.com/post/6469b733968c7c53b098e22c