我的数据库使用Mongodb和Mongoose,但当我在同一Schema中第二次使用unique: true
时,它不起作用。
这是我的模式:
const User = new Schema({
userName: {
type: String,
unique: true,
required: true
},
email: {
type: String,
unique: true,
required: true
},
password: {
type: String,
required: true
},
avatar: String,
createdAt: {
type: Date,
default: Date.now
}
});
对于userName
,它工作得很好,但对于email
字段,它根本不工作。
这是我的数据库配置:
mongoose.connect("mongodb://localhost:27017/test", {
useNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true,
useFindAndModify: false,
});
请参阅此图片了解我当前的数据库状态:测试文档图片
他们有一个唯一的用户名,但有相同的电子邮件。
Mongo和mongoose如果由于现有的非唯一字段而无法创建索引,则会以静默方式失败。
重置数据库或删除重复的文档,然后重新启动应用程序。
i重置mongo并修复问题