Включвате level
в update
параметър на критериите за заявка, така че ако това също не съвпада със съществуващия запис, ще се опита да създаде нов документ, който няма да изпълни уникалния индекс, който обхваща само skill
и resource
.
Опитайте да промените своята update
към това:
ResourceSkillLevel.update({
resource: self._id,
skill: skill._id
}, {$set: {level: level}}, {upsert: true}, cb);