node.js - Mongoose 验证器未更新
问题描述
我正在使用 mongoose 和 npm 包mongoose-unique-validator
进行验证。
插入我的模式时它工作得很好,但是我将验证从一个属性更改为另一个。现在我仍然收到电子邮件的旧验证(MongoError 11000)的唯一 mongo 错误......虽然我将它移到用户名,好像之前的验证器没有被删除并且没有正确更新。
const mongoose = require('mongoose');
const uniqueValidator = require('mongoose-unique-validator');
const Schema = mongoose.Schema;
let userSchema = new Schema({
username:{
type: String,
required: true,
unique: true,
uniqueCaseInsensitive: true
},
email: {
type: String,
required: true
}
}
userSchema.plugin(uniqueValidator, {message : 'username must be unique'});
module.exports.User = mongoose.model('User', userSchema);
有没有办法更新验证器?我还没有找到任何东西
解决方案
请完全删除您的收藏,然后再次运行您的项目。之后一切都会好起来的,因为根据您的电子邮件在您的 mongodb 中创建的唯一索引仍然存在......
对于删除索引,您可以使用用于 mongodb 的 IDE,例如 robo 3t 或 ... 使用命令可以删除索引
db.getCollection('CollocationName').dropIndex( "indexName_1" )
对你来说是:
db.getCollection('users').dropIndex( "email_1" )
如果索引是由猫鼬创建的,则应将 indexName 与 _1 一起使用
推荐阅读
- tensorflow-datasets - 使用 tensorflow-bq-io 使用 tf-dataset 训练 keras 返回具有相同数据的每个时间差
- css - 图片填满了 Safari 手机上的整个空间
- jquery - 如何在 jQuery 中选择数据标签选项元素?
- macos - 带有 xs 的 Perl 模块 Config::Augeas 不会安装在 Big Sur 上
- flutter - Dart,用方法创建类型的最佳方式
- java - 将 HTML 转换为 PDF/PNG
- mongodb - mongo db:从对象数组中获取子数组,其值在单个文档的范围内
- javascript - 一个充满零的数组
- class - Tampermonkey - 单击类按钮
- c# - 在线程之间传递事件从单独的 C# 类运行