mongoose - 从数据库中检索到的文档的猫鼬验证
问题描述
用户模式有两个字段:
const userSchema = new m.Schema({
name: {
type: String,
required: true
},
nickname: {
type: String,
required: true,
select: false
}
});
当我手动创建文档并将“昵称”设置为未定义时,出现验证错误。但是当我从数据库中选择一个用户文档时,验证不会出错,尽管“昵称”字段未定义。为什么?
这是整个应用程序:
const m = require("mongoose");
const userSchema = new m.Schema({
name: {
type: String,
required: true
},
nickname: {
type: String,
required: true,
select: false
}
});
const User = m.model("User", userSchema);
async function addUser() {
const user = new User({
name: "John",
nickname: "Johnny"
});
try {
await user.save();
} catch (err) {
console.log("err", err);
}
}
async function checkUser() {
const user1 = await User.findOne({ name: "John" });
const user2 = new User({
name: "John",
nickname: undefined
});
const errors1 = user1.validateSync();
console.log(errors1);
const errors2 = user2.validateSync();
console.log(errors2);
}
m.connect("mongodb://localhost:27017/testdb", {
useNewUrlParser: true,
useCreateIndex: true,
useFindAndModify: false,
useUnifiedTopology: true
}).then(async () => {
console.log("MongoDb connection successfull");
await addUser();
await checkUser();
console.log("finished");
});
解决方案
推荐阅读
- google-cloud-platform - 如何在数据融合中使用正则表达式拆分过滤器?
- python - 如何实现 .ui 文件以使用 fbs 打包 PyQt5 应用程序?
- python - 在python中绘制幂函数但图形为空白
- json - 未处理的异常:“字符串”类型不是“列表”类型的子类型
' - python - 当我在 python 中使用类时,代码可以工作,但 linter 在带有红色标记的代码中显示错误
- java - 如何避免鼠标焦点出现现场故障
- c# - 是否可以跟踪类的当前实例数?
- r - 如何聚合 data.table 中的组并排除行本身?
- android - 保存 Android Studio 项目的默认目录是哪个?
- python - 如何使用 store = True 更新具有计算字段的旧记录