No mongodb cada documento deve ser único, então você precisa de um campo único para ser usado como id. Se você não fornecer um, o mongodb fornecerá um para você automaticamente. No entanto, se você quiser fornecer IDs personalizados por qualquer motivo (melhorar o desempenho da consulta, sendo um deles), poderá fazê-lo manualmente. Aqui vão minhas sugestões:
Se você estiver inserindo um novo documento, poderá definir manualmente o campo _id como:
doc._id = "12312312" //(Or whichever function to generate id you have)
doc.save(...)
Mas quando você já tem um documento no banco de dados, não pode mais modificá-lo. O que você pode fazer é fazer uma cópia do documento, salvar um novo documento com os mesmos dados e apagar o antigo:
// 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})
}
Esta questão é semelhante à seguinte:
Como atualizar o _id de um documento do MongoDB?
Espero que minha resposta tenha sido útil