我正在尝试创建一个用户架构,其中包含一个名为“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 ...
})
如果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'}