我認識到這個問題有beenaskedbefore,但沒有任何解決方案似乎對我工作。獨特的驗證不工作在貓鼬
我有我定義這樣一個簡單的模型:
const mongoose = require('mongoose')
const { Schema } = mongoose
let subscriberSchema = new Schema({
firstName: { type: String, required: true },
email: { type: String, required: true, unique: true }
}, { timestamps: true })
let Subscriber = mongoose.model('Subscriber', subscriberSchema)
如果我運行下面的(在REPL,所以沒有異步問題),我希望看到被記錄的錯誤第二次致電create
。
Subscriber.create({ firstName: "Landon", email: "[email protected]" })
Subscriber.create({ firstName: "Landon", email: "[email protected]" }, function(err) {
console.log("ERROR", err)
})
取而代之,我看到"ERROR" null
。
如果我運行count
查詢或find
查詢,我可以看到兩個模型都已創建。我究竟做錯了什麼?
編輯
這裏有一些我已經嘗試過的事情:
- 重啓MongoDB中添加索引
- 刪除所有的現有記錄,所以沒有現有記錄後這可能違反唯一性約束
- 定義
email
屬性所有這些方法(我已經看到不同地方的不同實現):{ type: String, required: true, unique: true }
,{ type: String, required: true, index: true, unique: true }
,{ type: String, required: true, index: { unique: true } }
。
你可以編輯你的問題,包括你檢查了鏈接的問題,以便我們不必問這些相同的問題嗎? – JohnnyHK
@JohnnyHK當然,沒問題。更新。 – LandonSchropp