Mongoose 中如何使用 Schema 的 default 属性设置默认值
当我们使用 Mongoose 进行 MongoDB 数据库操作时,使用 Schema 可以让我们在设计数据的结构时更加灵活,但是在每次插入数据时,如果不想手动指定某些属性的值,而且又不想让它为空或者报错,那么就需要用到 Schema 中的 default 属性,帮我们自动设置数据的默认值。
在 Mongoose 中,default 属性可以设置在 Schema 中的任何字段上,包括 String、Number、Boolean、Date、Buffer、Mixed、ObjectId 和 Array 等,接下来我们分别介绍一下这些类型的默认值设置方法。
1、String 类型的默认值设置方法
对 String 类型的字段设置默认值是最简单的,只需要在 Schema 的属性中添加一个 default 属性即可:
const schema = new mongoose.Schema({
name: { type: String, default: 'John' }
})当我们在插入一条数据时,如果没有设置 name 字段的值,那么默认值为 'John'。
2、Number 类型的默认值设置方法
对 Number 类型的字段设置默认值也比较简单,只需要在 Schema 的属性中添加一个 default 属性即可:
const schema = new mongoose.Schema({
age: { type: Number, default: 18 }
})当我们在插入一条数据时,如果没有设置 age 字段的值,那么默认值为 18。
3、Boolean 类型的默认值设置方法
对 Boolean 类型的字段设置默认值也比较简单,只需要在 Schema 的属性中添加一个 default 属性即可:
const schema = new mongoose.Schema({
isVip: { type: Boolean, default: false }
})当我们在插入一条数据时,如果没有设置 isVip 字段的值,那么默认值为 false。
4、Date 类型的默认值设置方法
对 Date 类型的字段设置默认值也比较简单,只需要在 Schema 的属性中添加一个 default 属性即可:
const schema = new mongoose.Schema({
createAt: { type: Date, default: Date.now }
})当我们在插入一条数据时,如果没有设置 createAt 字段的值,那么默认值为当前时间。
5、Buffer 类型的默认值设置方法
对 Buffer 类型的字段设置默认值也比较简单,只需要在 Schema 的属性中添加一个 default 属性即可:
const schema = new mongoose.Schema({
content: { type: Buffer, default: new Buffer('my default text') }
})当我们在插入一条数据时,如果没有设置 content 字段的值,那么默认值为 'my default text'。
6、Mixed 类型的默认值设置方法
对 Mixed 类型的字段设置默认值也比较简单,只需要在 Schema 的属性中添加一个 default 属性即可:
const schema = new mongoose.Schema({
info: { type: Schema.Types.Mixed, default: {} }
})当我们在插入一条数据时,如果没有设置 info 字段的值,那么默认值为一个空对象。
7、ObjectId 类型的默认值设置方法
对 ObjectId 类型的字段设置默认值也比较简单,只需要在 Schema 的属性中添加一个 default 属性即可:
const schema = new mongoose.Schema({
authorId: { type: Schema.Types.ObjectId, default: () => new mongoose.Types.ObjectId() }
})当我们在插入一条数据时,如果没有设置 authorId 字段的值,那么默认值为一个新生成的 ObjectId 对象。
8、Array 类型的默认值设置方法
对 Array 类型的字段设置默认值也比较简单,只需要在 Schema 的属性中添加一个 default 属性即可:
const schema = new mongoose.Schema({
tags: { type: [String], default: ['tag1', 'tag2'] }
})当我们在插入一条数据时,如果没有设置 tags 字段的值,那么默认值为数组 ['tag1', 'tag2']。
通过上述对各种类型字段的默认值设置方法的介绍,相信大家已经掌握了 Mongoose 中使用 Schema 的 default 属性设置默认值的方法。在实际使用中,我们可以根据具体应用场景来选择合适的默认值,以减少手动的重复输入,提高效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67d7f6b6a941bf7134e3a521