Anda termasuk level di update parameter kriteria kueri, jadi jika itu juga tidak cocok dengan catatan yang ada, ia akan mencoba dan membuat dokumen baru yang akan gagal dengan indeks unik yang hanya mencakup skill dan resource .
Coba ubah update . Anda untuk ini:
ResourceSkillLevel.update({
resource: self._id,
skill: skill._id
}, {$set: {level: level}}, {upsert: true}, cb);