Удалить все из субдокумента с помощью mongoose/mongodb

У меня есть коллекция:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
ObjectId = Schema.ObjectId;
var User = new Schema({
    id: ObjectId,
    name: String,
    positionsApplied:[{
            position_id:ObjectId,
            index_position: Number
    }],
})

Мне нужно сделать, это удалить все документы, которые существуют в пределах коллекции положений Приложений с мангустом. Я не уверен, где я иду не так:

app.post('/deleteAll', function(req, res){
  User.find(req.user._id, // this is the object Id which matches the logged in user
        {$unwind : "$positionsApplied"}).remove().exec(function (err, result) {
          console.log(result);
          res.send({results:result});

        });

});

обновление: схема: введите описание изображения здесь

возврат из remove(): введите описание изображения здесь

1 ответ

Схема

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
ObjectId = Schema.ObjectId;
var PositionApplied = new Schema({
    position_id:ObjectId,
    index_position: Number
}, { _id : false });

var User = new Schema({
    _id: ObjectId,
    name: String,
    random_index_number:Number,
    companyname: String,
    password: String,
    email: String,
    username: String,
    location: String,
    role:String,
    teamwork:Number,
    initiative:Number,
    technical_skills: Number,
    communication:Number,
    employees: String,
    profile_image_link: String,
    video_url: String,
    biodescription: String,
    twitter: String,
    facebook: String,
    instagram: String,
    linkedin: String,
    google: String,
    biodescription: String,
    positionsApplied:[PositionApplied],
    experience: [{
          title: String,
          location: String,
          company: String,
          start: String,
          end:String,
          description:String
  }],
    position: [{
          _id:String,
          title: String,
          location: String,
          start: String,
          term:Number,
          description:String,
          teamwork_value:Number,
          communication_value:Number,
          initiative_value:Number,
          pos_index_number:Number,
            preference:[{
                        candidate_id: String,
                        weightedScore:Number,
                        position_id:String,
                        candidate_index_number:Number
                    }],
                    date: {type: Date, default: Date.now},
                        applied:[{
                                candidate_id: ObjectId,
                                date: {type: Date, default: Date.now},
                                profile_image: String,
                                location: String,
                                name: String,
                                _id:ObjectId
                        }],
  }],
  education: [{
          school: String,
          location: String,
          degree: String,
          start: String,
          end:String,
          description:String,
                    _id:String
  }],
    survey: [{
                    teamwork:Number,
                    communication:Number,
                    initiative:Number
    }],

    images: [{
                    one: String,
                    two: String,
                    three: String,
                    four: String,
                    five:String,
                    six:String
    }],
});


module.exports = mongoose.model('User', User);
module.exports = {
  User : mongoose.model('User', User),
  PositionApplied : mongoose.model('PositionApplied', PositionApplied)
}

Вызов:

     app.post('/deleteall', function(req, res){
          User.findOne({_id: req.user._id}, 'positionsApplied', function(err, user){
        if (err) return handleError(err);
        user.positionsApplied = user.positionsApplied.map(e => e.position_id);
        PositionApplied.remove({position_id: {$in: user.positionsApplied}}, function(){

        });
      }
  );
      });

Обновленное сообщение об ошибке:

Другие вопросы по тегам