Zahrnujete level v update parametr kritéria dotazu, takže pokud také neodpovídá existujícímu záznamu, pokusí se vytvořit nový dokument, který selže s jedinečným indexem, který zahrnuje pouze skill a resource .
Zkuste změnit update na toto:
ResourceSkillLevel.update({
resource: self._id,
skill: skill._id
}, {$set: {level: level}}, {upsert: true}, cb);