Du inkluderar level
i update
query criteria parameter, så om den inte också matchar den befintliga posten kommer den att försöka skapa ett nytt dokument som kommer att misslyckas med det unika indexet som bara sträcker sig över skill
och resource
.
Prova att ändra din update
till detta:
ResourceSkillLevel.update({
resource: self._id,
skill: skill._id
}, {$set: {level: level}}, {upsert: true}, cb);