I mongodb skal hvert dokument være unikt, så du skal bruge et unikt felt for at blive brugt som id. Hvis du ikke leverer en, vil mongodb automatisk levere en til dig. Men hvis du vil give brugerdefinerede id'er uanset årsag (forbedring af forespørgselsydeevne er en af dem), kan du gøre det manuelt. Her kommer mine forslag:
Hvis du indsætter et nyt dokument, kan du manuelt indstille _id-feltet som:
doc._id = "12312312" //(Or whichever function to generate id you have)
doc.save(...)
Men når du allerede har et dokument i databasen, kan du ikke ændre det længere. Det du kan gøre er at lave en kopi af dokumentet, gemme et nyt dokument med de samme data og slette det gamle:
// 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})
}
Dette spørgsmål ligner det følgende:
Hvordan opdaterer _id'et for ét MongoDB-dokument?
Håber mit svar var nyttigt