Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

353
Views
sotre data en mongodb a través del esquema mongoose sin pasar el valor de la clave verdadera única

Tengo un esquema de mangosta como este: -

 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}})

Cuando trato de guardar datos en db con este código: -

 let newUser = User(); newUser.name = name; newUser.email = email; newUser.mobNum = mobNum; newUser.save();

cuando ejecuto el servidor y presiono mi api para registrar un nuevo usuario solo los datos se guardan con éxito en mongodb cuando intento guardar un valor diferente en db obtuve un error

ese es :-

 { 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] }

Como sé, este error está relacionado con el valor duplicado del nombre de usuario , pero cuando guardo datos en db, no guardo el nombre de usuario en la primera API, guardo el nombre de usuario la próxima vez que el usuario ingrese a nuestra página web.

Así que por favor solucione este error.

about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

En MongoDB, un campo único no puede estar vacío en varios registros . Si su usuario no proporciona el nombre de usuario al principio, pero aún necesita que el campo sea único, puede almacenar una cadena aleatoria o un número de teléfono móvil o un correo electrónico como nombre de usuario en el primer intento. Creo que eso funcionará para ti.

Si desea crear una cadena aleatoria y asignarla a un nombre de usuario, puede intentar lo siguiente usando criptografía:

 let newUser = User(); newUser.name = name; newUser.email = email; newUser.mobNum = mobNum; require('crypto').randomBytes(48, function(err, buffer) { if(err) { throw err } username = buffer.toString('hex'); newUser = username; newUser.save(); });
about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!