【发布时间】:2017-09-15 20:40:02
【问题描述】:
我有一个像这样的猫鼬模式:-
var UserSchema = new Schema({
name: {type: String, required: true},
email: {type: String, required: true,unique: true},
mobNum: {type: String, required: true, unique: true},
username: {type: String, unique: true},
dob:{ type: Date},
isTempUser: {type: String, default: true},
mobNumVerified: {type: Boolean, default: false},
emailVerified: {type: Boolean, default: false},
registrationComplete: {type: Boolean, default: false}})
当我尝试使用此代码将数据保存在数据库中时:-
let newUser = User();
newUser.name = name;
newUser.email = email;
newUser.mobNum = mobNum;
newUser.save();
当我运行服务器并点击我的 api 注册新用户时,只有第一次数据在 mongodb 中成功保存,当我尝试在 db 中保存不同的值时,我得到了错误
那是:-
{ MongoError: E11000 duplicate key error collection: okhlee-kdb-promoter.users index: username_1 dup key: { : null }
at Function.MongoError.create (D:\Okhlee.com\KDB Promoter backend\node_modules\mongodb-core\lib\error.js:31:11)
at toError (D:\Okhlee.com\KDB Promoter backend\node_modules\mongodb\lib\utils.js:139:22)
at D:\Okhlee.com\KDB Promoter backend\node_modules\mongodb\lib\collection.js:659:23
at handleCallback (D:\Okhlee.com\KDB Promoter backend\node_modules\mongodb\lib\utils.js:120:56)
at D:\Okhlee.com\KDB Promoter backend\node_modules\mongodb\lib\bulk\unordered.js:465:9
at handleCallback (D:\Okhlee.com\KDB Promoter backend\node_modules\mongodb\lib\utils.js:120:56)
at resultHandler (D:\Okhlee.com\KDB Promoter backend\node_modules\mongodb\lib\bulk\unordered.js:413:5)
at D:\Okhlee.com\KDB Promoter backend\node_modules\mongodb-core\lib\connection\pool.js:461:18
at _combinedTickCallback (internal/process/next_tick.js:73:7)
at process._tickCallback (internal/process/next_tick.js:104:9)
name: 'MongoError',
message: 'E11000 duplicate key error collection: okhlee-kdb-promoter.users index: username_1 dup key: { : null }',
driver: true,
code: 11000,
index: 0,
errmsg: 'E11000 duplicate key error collection: okhlee-kdb-promoter.users index: username_1 dup key: { : null }',
getOperation: [Function],
toJSON: [Function],
toString: [Function] }
据我所知,此错误与 username 的重复值有关,但是当我将数据保存在 db 中时,我没有在第一个 api 上存储 username 我保存 用户名 下次用户访问我们的网页时。
所以请解决这个错误。
【问题讨论】:
-
添加你使用过的数据。还有 MongoDB 版本和 Mongoose 版本
标签: node.js mongodb express mongoose mean-stack