Очевидно, в настоящее время нет простого способа сделать это.Итак, в интересах тех, кто может искать подобную проблему, вот мое решение:
//** Method for deleting Classroom */
'classroom.delete'(classroom_id){
if(!this.userId){
throw new Meteor.Error('not-authorised');
}
Classrooms.remove(classroom_id)
let classids = Classrooms.find({ owner: this.userId
}).fetch().map(function(classrooms){
return classrooms._id })
//console.log(classids);
SMUProfiles.update({
owner: this.userId,
}, {
$set: {
'classrooms.owner': classids
}
}
)
},
История этого решения: у меня есть 2 коллекции Classrooms
и SMUProfiles
.После регистрации в SMUProfile для этого пользователя будет создана новая запись, содержащая несколько других деталей (см. Рисунок, прикрепленный в вопросе выше), включая запись идентификаторов классов, созданных пользователем.
Сейчас, когда пользователь удаляет класс в коллекции Classrooms
, мне нужно также удалить идентификатор класса, который был удален, в SMUProfile
.Первоначально я пытался удалить идентификатор из массива идентификаторов в SMUProfile
, но безуспешно.
Я решил эту проблему, перечитав коллекцию Classrooms
после удаления класса, повторив идентификаторы оставшихся классов внутри массива, и $set
этого нового массива идентификаторов классов SMUProfile
.