📅  最后修改于: 2023-12-03 14:49:43.644000             🧑  作者: Mango
在使用 Node.js 来操作 MongoDB 数据库时,我们经常需要设置一些默认值,特别是在插入文档时,如果一个字段的值没有设置,那么可能会引发错误。MongoDB 提供了一种默认值的机制,通过使用 default
属性,我们可以为某个字段指定一个默认值。
在 MongoDB 中,定义默认值的方式如下:
const userSchema = new mongoose.Schema({
name: {
type: String,
required: true
},
email: {
type: String,
required: true,
unique: true
},
age: {
type: Number,
default: 0
},
createdAt: {
type: Date,
default: Date.now
}
});
在上述代码中,我们为 age
和 createdAt
字段设置了默认值。如果在插入一个新的文档时,没有为这两个字段提供值,那么 MongoDB 会自动为它们设置默认值。
如果我们同时为一个字段指定了默认值和初始值,那么默认值会被忽略。例如:
const user = new User({
name: "Tom",
email: "tom@example.com",
age: 30 // 初始值为 30
});
在上述代码中,我们为 age
字段提供了一个初始值,那么在插入文档时,初始值会覆盖默认值。
在使用默认值时,需要注意以下几点:
required
属性和默认值同时存在的情况下,没有为该字段提供值,那么会引发验证错误。createdAt
字段设置了默认值为 Date.now
,它是一个函数。使用默认值可以提高开发效率,减少代码量,并且可以避免在插入文档时出现错误。在使用时,需要注意上述的注意事项。