假设我有这个架构:
const UserSchema = new mongoose.Schema({
name: {
type: String,
required: true
},
createdAt: {
type: Date,
default: Date.now
}
});
mongoose.model('User', UserSchema);
我想避免有人意外地这样做:
const izzy = User.create({ name: 'Izzy', createdAt: "2000-01-28T01:04:30.809Z" });
我想确保忽略createdAt
,因此如果这是一个正在创建的新对象(如我的示例代码),则将使用default
值,但如果它是更新,则createdAt
应保留其原始值。所以我想以某种方式配置 createdAt
使其不可以显式设置。
这可能吗?
最佳答案
通常当你想使用默认值时,你不会传递createdAt值。但是因为你说的是“意外”,所以你可以使用覆盖值传递。
User.create({ name: 'Izzy', createdAt: "2000-01-28T01:04:30.809Z" } , (err,user)=>{
if(err){
//handle
}
user.createdAt = Date.now;
user.save();
});
关于node.js - Mongoose 私有(private)集场,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55388845/