Mongoose 中如何设置默认值:Schema 的 default 选项详解
在 MongoDB 中进行数据的存储和管理时,Mongoose 是一种非常常用的 Node.js 框架。Mongoose 可以有效地简化开发者的数据库操作,包括增、删、改、查等操作。在 Mongoose 中,Schema 是非常重要的概念,它定义了数据的结构和类型,并且还可以设置默认值。本文将详细介绍 Mongoose 中如何设置默认值:Schema 的 default 选项。
基本概念
在 Mongoose 的 Schema 中,default 属性可以设置属性的默认值。当创建新的文档时,如果属性的值没有被设置,那么它将会使用默认值。Mongoose 提供了许多不同类型的默认值选项,包括原始类型、数组类型、日期类型等等。
默认的原始类型
对于默认的原始类型,Mongoose 提供了许多默认值选项,例如:
const userSchema = new mongoose.Schema({ name: { type: String, default: 'unknown' }, age: { type: Number, default: 18 }, gender: { type: String, enum: ['male', 'female', 'unknown'], default: 'unknown' } })
在上述示例中,如果一个新的用户文档没有设置 name 属性,则它的默认值将是 'unknown'。同样,如果新的文档没有设置 age 属性,则它的默认值将是 18。只有当 gender 属性的值为 'male'、'female' 或 'unknown' 时,才会将其作为有效值;如果没有设置 gender 属性,则它的默认值将是 'unknown'。
默认的数组类型
默认值也适用于数组类型。假设我们有一个 Schema 定义了一个用户对象,其中用户有一个朋友列表,那么我们可以通过以下方式定义:
const userSchema = new mongoose.Schema({ name: String, age: Number, friends: { type: [String], default: [] } })
在上述示例中,如果一个新的用户文档没有设置 friends 属性,则它的默认值将是空的数组 []。
默认的日期类型
对于日期类型,Mongoose 也提供了默认值选项。以下是一个示例:
const orderSchema = new mongoose.Schema({ customerName: String, orderDate: { type: Date, default: Date.now } })
在上述示例中,如果一个新的订单文档没有设置 orderDate 属性,则它的默认值将是当前日期。
同时设置多种类型的默认值
在一个 Schema 中,你也可以同时设置多种类型的默认值。以下是示例:
const entrySchema = new mongoose.Schema({ title: { type: String, default: 'untitled' }, body: { type: String, default: '' }, date: { type: Date, default: Date.now }, tags: { type: [String], default: [] } })
在上述示例中,如果一个新的日志条目文档没有设置 title、body、date 或 tags 属性,则分别使用 'untitled'、''、当前日期和空数组作为其默认值。
结论
在 Mongoose 中,使用 Schema 中的 default 属性可以设置默认值。在不同类型的属性上设置默认值可以有效地提高开发者的工作效率。通过本文的学习,相信您已经初步掌握了如何设置默认值的技能,并可以根据需求灵活地运用。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/672af8deddd3a70eb6d1453d