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

255
Visualizações
¿Cómo generar una identificación única para cada entrada en mongoDB?

¿Cómo genero una identificación única para cada entrada en mi mongoDB a través de Postman?

Ejecuto postman POST con http://localhost:8000/api/user/store y envío

 { "name":"testname", "email":"testemail@test.com", "phone":"testnumber", "city":"testcity", }

Esto se guarda en mi mongoDB y muestra esto en mi brújula mongoDB

 _id:61f7e48f0c651345677b7775 name:"testname" email:"testemail@test.com" phone:"testnumber" city:"testcity" __v:0

¿Cómo puedo generar una ID única y agregarla entre este proceso para que se guarde de esta manera?

 _id:61f7e48f0c651345677b7775 uniqueID:68465135 name:"testname" email:"testemail@test.com" phone:"testnumber" city:"testcity" __v:0

Mi modelo userData.js se ve así:

 const mongoose = require('mongoose'); const Schema = mongoose.Schema; const userSchema = new Schema({ name: { type: String, required: true }, email: { type: String, required: true }, phone: { type: String, required: true }, city: { type: String, required: true }, }, { timeStamps: true }) const User = mongoose.model('User', userSchema); //export model to use in other files module.exports = User;

Este es el fragmento de UserController.js sobre cómo se guardan los datos

 // Saves user to the database const store = (req, res, next) => { let user = new User({ name: req.body.name, email: req.body.email, phone: req.body.phone, city: req.body.city, }) user.save() .then(response => { res.json({ message: 'User added successfully!' }) }) .catch(error => { res.json({ message: 'An error occured!' }) }) }

El ID único puede ser cualquier cosa que acabo de agregar numérico como ejemplo. Pero tiene que ser único. ¿Cómo puedo hacer esto? Cualquier sugerencia sería útil.

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Hasta donde yo sé, _id ( ObjectId ) ya es único, y si desea proporcionar su propio _id , solo necesita configurarlo en la entidad.

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede usar _id de MongoDB, ya que siempre será único. Si no le gusta el formato de MongoDB _id , puede cambiarlo a nanoid .


Modelo

Con nuevo campo de uniqueId

 import { nanoid } from 'nanoid'; const UserSchema = new mongoose.Schema({ name: string, uniqueId: { type: String, required: true, default: () => nanoid(7), index: { unique: true }, }, email: String, phone: String, city: String, })

También puede sobrescribir _id con nanoid para que no cree un campo adicional en su esquema

 import { nanoid } from 'nanoid'; const UserSchema = new mongoose.Schema({ _id: { type: String, default: () => nanoid(), }, name: string, email: String, phone: String, city: String, })

Controlador

 // Saves user to the database const store = async (req, res, next) => { const { name, email, phone, city} = req.body; try { let user = new User({ name, email, phone, city, }); const savedUser = await user.save(); return res.json({ message: 'User added successfully!', }); } catch (error) { console.log(error) return res.json({ message: 'An error occured!', }); } };
about 4 years ago · Juan Pablo Isaza Relatório

0

El controlador javascript mongodb ya tiene UUID :

 db.foo.insert( {x: new UUID()} ); db.foo.aggregate([ {$project: {x:true, x_type: {$type: "$x"}}} ]); { "_id" : ObjectId("61f81af6a565bb368b38e345"), "x" : UUID("b639a8b5-2598-429f-92e0-630c6b5bfbdc"), "x_type" : "binData" }

Si no le gusta el objeto UUID real, capture su representante de cadena. Tenga en cuenta que, lamentablemente, toString() en el objeto no 892ab869-3339-41b3-a612-5c29871f4e57 sino todo el UUID("892ab869-3339-41b3-a612-5c29871f4e57") , por lo que debe substr :

 db.foo.insert( {x: (new UUID()).toString().substr(6,36) }); db.foo.aggregate([ {$project: {x:true, x_type: {$type: "$x"}}} ]); { "_id" : ObjectId("61f81b56a565bb368b38e348"), "x" : "d5af9fb4-768c-4e17-b69a-8bcd80f8bf1e", "x_type" : "string" }

O, para simplificar, puede usar el método hex() :

 db.foo.insert( {x: (new UUID()).hex() } ); db.foo.aggregate([ {$project: {x:true, x_type: {$type: "$x"}}} ]); { "_id" : ObjectId("61f81ba9a565bb368b38e34e"), "x" : "b9810abea4344932b3da15f7f0d58e2c", // note the dashes went away "x_type" : "string" }

En todos los casos, el controlador, NO el servidor, creará un _id único si no se proporciona. La creación de una identificación única que no esté vinculada a la base de datos (por ejemplo _id ) puede ser valiosa al integrar y mover datos (compárelo con mover ROWID fuera de Oracle en un CSV; no es muy útil). NOTA: El tipo generado predeterminado para _id es ObjectId , que es un tipo en BSON y no está necesariamente vinculado a MongoDB. Dicho esto, UUID es aún más una "clave de máquina/DB" en comparación con una clave comercial familiar que se puede hacer única.

about 4 years ago · Juan Pablo Isaza 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