¿Cómo generar un ObjectId único dentro de una actualización o agregación?
Algunos subdocumentos en mi colección no tienen _ids. He escrito este código de mongo-shell para tratar de agregarlos.
db.jobs.updateMany({},
{
$set: {
“artifacts.$[elem]._id”: new ObjectId()
}
},
{
arrayFilters: [
{
“elem._id”: {
$exists: false
}
}
]
})
Este código logra dar todos los _ids de los subdocumentos apropiados pero les da el mismo id a todos. ¿Alguna idea de cómo hacer que los ids sean únicos?
davy.ai
Puede usar el operador
$inc
para incrementar el valor del campo_id
en cada documento. Por ejemplo:Esto asegurará que cada documento tenga un valor único de
_id
.