【发布时间】:2018-05-04 13:54:31
【问题描述】:
我正在尝试创建一个具有“facebookid”键的用户模式,这是一个唯一值,仅在用户注册 facebook 时给出,而不是当用户通过 google 或本地注册时。当用户在本地注册时,facebookid 默认设置为 null。但是我得到了错误:'insertDocument :: caused by :: 11000 E11000 duplicate key error index: db22.users.$facebookid_1 dup key: { : null }'
这是架构:
let UserSchema = new Schema({
facebookid: {
type: String,
required: false, // only required for facebook users
unique: true,
default: null
},
// more details + keys below ...
})
如果我还希望条目是唯一的,如果值为 null,我如何允许键 facebookid 的重复条目?
即我不想看到两个相似的字符串条目:
不行:
* User: {_id: 123, facebookid: '4325',username:'joe'}
* User: {_id: 432, facebookid: '4325', username: 'pat'}
好的:
* User: {_id: 123, facebookid: null,username:'joe'}
* User: {_id: 432, facebookid: null, username: 'pat'}
【问题讨论】:
-
你必须设置唯一为false