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

361
Views
Crear ID únicos para algunos elementos en el documento - Mongoose

Estoy creando un documento con mangosta y no puedo encontrar una forma de crear ID únicos para algunos elementos del documento.

Para un ejemplo:

 Document { _id: ObjectId(...), title: "Post Title", comments: [ { NEEDED_ID: 1, value: "abc"},{ NEEDED_ID: 2, value: "abc"} ], input: { isInput: true, NEEDED_ID: 3, } }

Espero que puedas ayudarme con eso.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

si necesita una identificación que aumente automáticamente, verifique el incremento automático en mongoDB: https://www.mongodb.com/basics/mongodb-auto-increment

ejemplo de los documentos de mongoDB anteriores con Atlas:

 // create collections db.createCollection("students"); db.createCollection("counters"); // create trigger exports = async function(changeEvent) { var docId = changeEvent.fullDocument._id; const countercollection = context.services.get("<ATLAS-CLUSTER>").db(changeEvent.ns.db).collection("counters"); const studentcollection = context.services.get("<ATLAS-CLUSTER>").db(changeEvent.ns.db).collection(changeEvent.ns.coll); var counter = await countercollection.findOneAndUpdate({_id: changeEvent.ns },{ $inc: { seq_value: 1 }}, { returnNewDocument: true, upsert : true}); var updateRes = await studentcollection.updateOne({_id : docId},{ $set : {studentId : counter.seq_value}}); console.log(`Updated ${JSON.stringify(changeEvent.ns)} with counter ${counter.seq_value} result : ${JSON.stringify(updateRes)}`); }; // Replace <ATLAS-CLUSTER> with your cluster service name. db.students.insert({ "name":"Jhon Doe" }); db.students.insert({ "name":"David Smith" }); db.students.insert({ "name":"Amanda Herny" }); // get students from atlas db.students.find().pretty();

si necesita crear una identificación aleatoria en el nodo, puede usar el paquete crypto .

Opción 1:

 const crypto = require("crypto"); // create id const _id = crypto.randomBytes(16).toString("hex"); // '4a82db25ba403269c009db0129a032f3'

Opcion 2:

 const { randomUUID } = require("crypto"); const uuid = randomUUID() // 'e92b8088-7fd2-40fd-ad87-2c16cbedfc94'

EDITAR: con respecto a su comentario, randomUUID() definitivamente genera una identificación única cada vez. Vuelva a verificar su implementación si no funciona para usted. Puede probar la generación de uuid en un script de demostración como este:

 const { randomUUID } = require("crypto"); numberOfIds = 5; // generate five unique id's for (let i = 0; i < numberOfIds; i++) { const uuid = randomUUID(); console.log(uuid); // prints 5 id's // f0151ff5-2656-400f-b4e6-c5549324f8f9 // a8223ae3-6259-4114-951b-8c12c3d932bf // 3a0404fd-6f5a-40d3-9726-c549f6d62ab4 // 35178ac4-62d5-4654-938e-0ffac378751a // 458bf08f-07d2-4849-bf67-6f328ff93109 }
about 4 years ago · Juan Pablo Isaza 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!