levelを含めています updateで クエリ条件パラメータ。既存のレコードとも一致しない場合は、skillのみにまたがる一意のインデックスに失敗する新しいドキュメントを作成しようとします。 およびresource 。
updateを変更してみてください これに:
ResourceSkillLevel.update({
resource: self._id,
skill: skill._id
}, {$set: {level: level}}, {upsert: true}, cb);