Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

357
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda