我的猫鼬模式如下所示
const mongoose = require('mongoose')
const Schema = mongoose.Schema
const exampleSchema = new Schema ({
name:{
type: String,
required: true
},
email: {
type: String,
required: true,
unique: true
},
mobile:{
type: String,
required: true,
unique: true
}
})
module.exports ={Driver: mongoose.model('Driver', driverSchema)}
现在的事情是,在移动设备中唯一可以正常工作,但是在电子邮件中,它允许我插入重复的电子邮件地址。
答案 0 :(得分:1)
您最好在mongodb shell中创建索引。
在mongoose docs中,他们指出:
在生产环境中,您应该创建indexes 使用MongoDB外壳而不是依靠猫鼬来做 您。模式的唯一选项便于开发和 文档,但猫鼬不是索引管理解决方案。
因此,我将删除架构中的唯一选项,并可以在mongodb shell中创建唯一索引,如下所示:
db.drivers.createIndex( { "email": 1 }, { unique: true } )
db.drivers.createIndex( { "mobile": 1 }, { unique: true } )
答案 1 :(得分:0)
这是由于我在收集unique: true
之前已经收集了记录。