Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.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 Node.js Mongoose在输入相同用户名时复制密钥_Javascript_Node.js_Mongodb_Mongodb Query - Fatal编程技术网

Javascript Node.js Mongoose在输入相同用户名时复制密钥

Javascript Node.js Mongoose在输入相同用户名时复制密钥,javascript,node.js,mongodb,mongodb-query,Javascript,Node.js,Mongodb,Mongodb Query,在我的MongoDb数据库中,用户配置文件集合遵循以下模式: { "_id": { "$oid": "566c69ab266ee48f24105a31" }, "userid": "8d67e890-a0ff-11e5-9203-93a5a9af8b67", "telnumber": { "value": "0600000000", "share": true }, "fullname": { "value": "Oscar Götting", "shar

在我的MongoDb数据库中,用户配置文件集合遵循以下模式:

{
"_id": {
    "$oid": "566c69ab266ee48f24105a31"
},
"userid": "8d67e890-a0ff-11e5-9203-93a5a9af8b67",
"telnumber": {
    "value": "0600000000",
    "share": true
},
"fullname": {
    "value": "Oscar Götting",
    "share": true
},
"emailaddr": {
    "value": "x@y.fr",
    "share": true
},
"__v": 0
}

为了在node.js中重现此模式,我正在执行以下代码:

 // Profile fields schema
var yokiProfileDataField = new mongoose.Schema({
  value: String,
  share: Boolean
},{ _id : false });

// Profile data schema
var yokiProfileDataSchema = new mongoose.Schema({
  userid: { type: String, required: true, unique: true }, // User unique user-id
  emailaddr: { type: yokiProfileDataField },
  fullname: { type: yokiProfileDataField },
  telnumber: { type: yokiProfileDataField }
});
如果我尝试使用其他人已输入的名称注册,则会出现重复密钥错误:

MongoError: E11000 duplicate key error index: yoki_users.profiles.$fullname_1 dup key: { : { value: "Oscar Götting", share: true } }
    at Function.MongoError.create (/Users/Rakso/Projets/Yoki/YokiWeb/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/error.js:31:11)
    at toError (/Users/Rakso/Projets/Yoki/YokiWeb/node_modules/mongoose/node_modules/mongodb/lib/utils.js:114:22)
    at /Users/Rakso/Projets/Yoki/YokiWeb/node_modules/mongoose/node_modules/mongodb/lib/collection.js:597:23
    at /Users/Rakso/Projets/Yoki/YokiWeb/node_modules/mongoose/node_modules/mongodb/lib/bulk/unordered.js:469:9
    at resultHandler (/Users/Rakso/Projets/Yoki/YokiWeb/node_modules/mongoose/node_modules/mongodb/lib/bulk/unordered.js:416:5)
...
这是怎么可能的,我怎样才能解决这个问题?
同样在MongoLab中,所有索引的唯一属性都设置为
unique:true
,除了那些在我的代码中设置为
unique:false
,这正常吗?这可能是问题吗?

我刷新了所有索引,并开始使用新的索引。它解决了我的问题。

您是否尝试删除有问题的索引?这些索引是我尝试插入的索引,所以是的,我尝试删除它们,并将它们重新添加。。。