0
Я пытаюсь установить кнопку удаления, где урок можно удалить из класса. Использование $ pull, похоже, просто устанавливает lesson_id в null. Есть ли способ полностью удалить этот элемент?
var classSchema = new Schema({
title: { type: String, required: true },
lessons: [{
_id: false,
lesson_id: {type: mongoose.Schema.Types.ObjectId, ref: 'Lesson'}
}]
});
module.exports.deleteLesson = function(class_id, lesson_id, callback){
Class.update(
{'_id': class_id},
{ $pull: {lessons: {'lesson_id.$._id': lesson_id}}},
callback
)
}
Например
{ _id: 5808,
title: 'cd',
__v: 0,
lessons: [ { lesson_id: [Object] }, { lesson_id: [Object] } ] }
становится
{ _id: 5808,
title: 'cd',
__v: 0,
lessons: [ { lesson_id: null }, { lesson_id: [Object] } ] }
Может быть, это может помочь http://stackoverflow.com/a/20275454/2931650 – Roshan
я не думаю, что $ является правильным оператором в этом случае вместо pullAll следует использовать таким образом, что если вы используете {$ pull: {lessons: {'lesson_id._id': lesson_id}}} или на догадку {$ pull: {уроки: {'lesson_id': lesson_id}}}? –