In mongodb ogni documento deve essere univoco, quindi è necessario un campo univoco da utilizzare come ID. Se non ne fornisci uno, mongodb te ne fornirà uno automaticamente. Tuttavia, se vuoi fornire ID personalizzati per qualsiasi motivo (migliorare le prestazioni delle query essendo uno di questi), puoi farlo manualmente. Ecco i miei suggerimenti:
Se stai inserendo un nuovo documento, puoi impostare manualmente il campo _id come:
doc._id = "12312312" //(Or whichever function to generate id you have)
doc.save(...)
Ma quando hai già un documento nel database, non puoi più modificarlo. Quello che puoi fare è fare una copia del documento, salvare un nuovo documento con gli stessi dati e cancellare quello vecchio:
// Fetch the documents
docs = db.clients.find({})
docs.forEach((doc) => {
//For each field you copy the values
new_doc.field = doc.field
new_doc._id = //YOUR ID FUNCTION
// insert the document, using the new _id
db.clients.insert(new_doc)
// remove the document with the old _id
db.clients.remove({_id: doc._id})
}
Questa domanda è simile alla seguente:
Come aggiornare l'_id di un documento MongoDB?
Spero che la mia risposta sia stata utile