Bạn đang bao gồm level
trong update
tham số tiêu chí truy vấn, vì vậy nếu điều đó cũng không khớp với bản ghi hiện có, nó sẽ thử và tạo một tài liệu mới sẽ làm hỏng chỉ mục duy nhất chỉ kéo dài skill
và resource
.
Thử thay đổi update
của bạn về điều này:
ResourceSkillLevel.update({
resource: self._id,
skill: skill._id
}, {$set: {level: level}}, {upsert: true}, cb);