Vamos supor que temos 5 usuarios cadastrados. Se deletarmos o de ID 3 e tentar incluir um novo, o tamanho da lista sera 4 e ira criar o ID 5, porem o 5 ja existe, então retornará erro de duplicate key.
Solução: Pegar os registros do banco e criar o proximo ID apartir do maior ID encontrado e nao do tamanho do array.
pensei em resolver com o sort( ):
const ids = users.map(user => user.id).sort()
user.id = ids[ids.length - 1] + 1
Mas sabemos quando chegar no ID 10 vai bugar tambem (JS sendo JS).
entao fiz o seguinte:
let maiorId = 0
maiorId = users.forEach((user) => {
if(user.id > maiorId)
maiorId = user.id
} )
user.id = maiorId + 1