node.js - Mongoose 模式在更新时跳过验证
问题描述
假设我有 categoryNameSchema,
const CategoryNameSchema = new mongoose.Schema({
name1: {
type: String,
required: [true, errorList.categoryName.name1.required],
validate: {
validator: function(v){
return Category.findOne({ 'categoryName.name1': v }).collation( { locale: 'en', strength: 2 } ).then(categoryName => !categoryName)
},
message: () => errorList.categoryName.name1.notUnique
}
},
name2: {
type: String,
required: [true, errorList.categoryName.name2.required],
validate: {
validator: function(v){
return Category.findOne({ 'categoryName.name2': v }).collation( { locale: 'en', strength: 2 } ).then(categoryName => !categoryName)
},
message: () => errorList.categoryName.name2.notUnique
}
},
});
想知道是否可以运行更新查询来验证所有现有文档,同时通过 id 从验证中排除当前选择的文档?(下方查询)
CategoryName.updateOne({ _id: req.params.id }, categoryNameData, { runValidators: true });
解决方案
推荐阅读
- javascript - d3js > 按需延迟加载数据
- excel - 将公式转换为 VBA
- regex - 在 hive 中,如何仅通过列的子字符串查询具有组的表?
- c# - 声明变量并稍后在 C# 中使用它们
- c - C - 获取 char* 的内容副本?
- android - android studio 运行错误 E/AndroidRuntime: FATAL EXCEPTION: Thread-7 Process
- url - 通过 URL 调用时具有不同的下拉值
- javascript - 在javascript中切片一个字符串
- reactjs - 如何在 Cloud9 上运行从头开始的 React 应用程序?
- macos - Macintosh 说文字转语音:新声音不能接受音素代码?