【发布时间】:2017-02-03 12:57:46
【问题描述】:
我在第二次尝试插入没有昵称的文档时遇到 MongoDB 错误。文档已经有唯一的字段并且不是必需的。
这是我的猫鼬模型:
var schema = new Schema ({
username: {
type: String,
required: false
},
nickname: {
type: String,
required: false,
unique: true,
trim: true
},
status: {
type: String,
required: false,
trim: true,
minlength: 1,
maxlength: 100
},
avatar: String,
online: {
type: Boolean,
default: false
},
created: {
type: Date,
default: Date.now
},
device: {
type: ObjectId,
ref: 'Device',
required: false
},
createdRooms:[{
type: Schema.Types.ObjectId,
ref: 'Room'
}],
facebook: {
facebookToken: {
type: String,
required: false,
trim: true,
unique: false
},
facebookId: {
type: String,
required: false,
trim: true,
unique: false
}
}
},
{
toObject: {
virtuals: true
},
toJSON: {
virtuals: true
}
});
第一次将没有昵称的文档添加到数据库,但是当我想保存另一个没有昵称的文档时,我得到一个错误:
MongoError: E11000 duplicate key error collection: grooptag.users index: nickname_1 dup key: { : null }
【问题讨论】:
-
昵称不是必须的而是唯一的问题吗?
-
@NadiaCerezo 是的,但是如何确保该字段是唯一的并且不是必需的?
标签: javascript node.js mongodb mongoose