Dołączasz level
w update
parametr kryteriów zapytania, więc jeśli nie pasuje on również do istniejącego rekordu, spróbuje utworzyć nowy dokument, w którym nie powiedzie się unikalny indeks, który obejmuje tylko skill
i resource
.
Spróbuj zmienić update
do tego:
ResourceSkillLevel.update({
resource: self._id,
skill: skill._id
}, {$set: {level: level}}, {upsert: true}, cb);