Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何修复重复密钥错误集合好友_Javascript_Mongodb_Mongoose_Duplicates_Mongoose Schema - Fatal编程技术网

Javascript 如何修复重复密钥错误集合好友

Javascript 如何修复重复密钥错误集合好友,javascript,mongodb,mongoose,duplicates,mongoose-schema,Javascript,Mongodb,Mongoose,Duplicates,Mongoose Schema,我得到以下错误: E11000 duplicate key error collection: db.users index: friends.userid_1 dup key: { : null } 我不知道如何解决这个问题。默认情况下为nothing,但当我在friends中输入新的userid时,仍然会出现错误。为什么? 在用户架构中: friends : [ { userid : {type: String, default: '', in

我得到以下错误:

E11000 duplicate key error collection: db.users index: friends.userid_1 dup key: { : null }
我不知道如何解决这个问题。默认情况下为nothing,但当我在
friends
中输入新的userid时,仍然会出现错误。为什么?

在用户架构中:

   friends : [
        {
            userid : {type: String, default: '', index: { unique: true }},
        }
    ],
    friendRequests: [
        {
            userid : {type: String, default: '', index: { unique: true }},
        }
    ]
根据猫鼬官员的说法:

数组是特殊的,因为它们隐式地具有默认值[](空数组)

这就是为什么当您在
朋友
中不输入任何内容时,它会隐式索引
null
值的原因。要解决此问题,您可以将两个数组的
default
值显式定义为
undefined
,并创建索引以从
unique
约束中排除空值,请尝试:

friends : {
    type: [ { userid : {type: String, default: '', index: { unique: true, sparse: true } } } ],
    default: undefined
},
friendRequests: {
    type: [ { userid : {type: String, default: '', index: { unique: true, sparse: true } } } ],
    default: undefined
}

编辑:请确保mongoose在测试之前重建索引

您需要为看到此内容的人生成唯一ID