2016-04-23 83 views
0
{ 
    "status": "Error", 
    "typeof": "object", 
    "result": { 
    "code": 11000, 
    "index": 0, 
    "errmsg": "E11000 duplicate key error collection: reduxpress.users index: address.email_1 dup key: { : null }", 
    "op": { 
     "mobile": "(950) 874-8901 x8729", 
     "_id": "571b6e353731775404ac05b9", 
     "points": 0, 
     "created": "2016-04-23T12:44:37.111Z", 
     "roles": "customer", 
     "profileImageURL": "default.png", 
     "email": "[email protected]", 
     "password": "VF1WQZ72HEyS0a6", 
     "name": "Junior94", 
     "__v": 0 
    } 
    } 
} 

//用戶模式 '使用嚴格的';「ERRMSG」: 「E11000重複鍵錯誤收集:reduxpress.users指數:address.email_1 DUP鍵:{:空}」

var mongoose = require('mongoose'), 
    Schema = mongoose.Schema, 
    crypto = require('crypto'), 
    validator = require('validator'); 
// generatePassword = require('generate-password'), 
// owasp = require('owasp-password-strength-test'); 

var validateLocalStrategyProperty = function(property) { 
    return (property.length); 
}; 

var validateLocalStrategyEmail = function(email) { 
    return (validator.isEmail(email)); 
}; 

var UserSchema = new Schema({ 
    name: { 
     type: String, 
     trim: true, 
     default: '', 
     validate: [validateLocalStrategyProperty, 
      'Please fill in your first name' 
     ] 
    }, 
    password: { 
     type: String, 
     default: '' 
    }, 
    email: { 
     type: String, 
     unique: true, 
     lowercase: true, 
     trim: true, 
     default: '', 
     match: /.+\@.+\..+/, 
     validate: [validateLocalStrategyEmail, 
      'Please fill a valid email address' 
     ] 
    }, 
    mobile: { 
     type: String, 
     // unique: true, 
     required: [true, 'User phone is required'], 
     trim: true 
    }, 
    profileImageURL: { 
     type: String, 
     default: 'default.png' 
    }, 
    roles: { 

     type: String, 
     enum: ['user', 'admin', 'shop manager', 'customer', 
      'operator' 
     ], 

     default: ['customer'], 
     required: 'Please provide at least one role' 
    }, 
    lastLogout: { 
     type: Date 
    }, 
    created: { 
     type: Date, 
     default: Date.now 
    }, 
    resetPasswordToken: { 
     type: String 
    }, 
    resetPasswordExpires: { 
     type: Date 
    }, 
    points: { 
     type: Number, 
     default: 0 
    } 
}); 

module.exports = mongoose.model('User',UserSchema); 

我試圖用攤販包保存用戶生成的數據,但我得到這個錯誤我沒有在任何database.can重複的電子郵件妳告訴我什麼是錯誤。我嘗試不同的事情,但沒有得到任何結果

+0

這是因爲數據庫的現有索引,請參閱http://stackoverflow.com/questions/17114851/mongo -id場,重複鍵錯誤 –

回答

1

提交您的JSON文件的email是有超過null值和提交的email也注意到收錄申請,也可以指定本場unique這扔exceeption

首先刪除索引電子郵件領域這樣

db.users.dropIndex({ "email": 1 }) 

,如果你需要歸檔的電子郵件指數和申請必須有運動成爲空電子郵件

然後創建sparse index這樣

db.users.createIndex({ "email": 1 }, { sparse: true }) 

超過知識sparse index是在這裏:https://docs.mongodb.org/manual/core/index-sparse/

相關問題