In mongodb moet elk document uniek zijn, dus je hebt een uniek veld nodig om als id te gebruiken. Als u er geen verstrekt, zal Mongodb er automatisch een voor u verstrekken. Als u echter om welke reden dan ook aangepaste id's wilt geven (waarbij de prestaties van query's er een van zijn), kunt u dit handmatig doen. Hier komen mijn suggesties:
Als u een nieuw document invoegt, kunt u het _id-veld handmatig instellen zoals:
doc._id = "12312312" //(Or whichever function to generate id you have)
doc.save(...)
Maar als u al een document in de database heeft, kunt u het niet meer wijzigen. Wat u kunt doen, is een kopie van het document maken, een nieuw document met dezelfde gegevens opslaan en het oude wissen:
// 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})
}
Deze vraag lijkt op de volgende:
Hoe update je de _id van één MongoDB-document?
Ik hoop dat mijn antwoord nuttig was