【发布时间】:2012-11-14 20:36:52
【问题描述】:
我将这个架构与来自 npm 的 mongoose 3.0.3 一起使用:
var schema = new Schema({
_id: Schema.ObjectId,
email: {type: String, required: true, unique: true}
});
如果我尝试保存已在 db 中的电子邮件,我希望得到一个 ValidationError,就像省略了 required 字段一样。然而事实并非如此,我得到了一个MongoError: E11000 duplicate key error index。
这不是验证错误(即使我删除了 unique:true 也会发生)。
知道为什么吗?
【问题讨论】:
-
旁注:
latest npm mongoose在周/月/年可能毫无意义。放上你正在使用的版本。 -
即使在您删除 unique: true 之后它也会继续这样做,因为就像 alexjamesbrown 所说,该规范会在您的数据库上创建一个索引。该数据库和索引会一直存在,直到您删除索引或数据库。您可能已经明白这一点,但我认为说出来可能会对某人有所帮助。