Я новичок в Mongoose и не думаю, что мой подход к удалению элемента в поддокументе является правильным.
У меня есть следующая настройка схемы:
//DEPENDENCIES
var mongoose = require('mongoose');
var contactSchema = new mongoose.Schema({
name:{type:String},
age:{type:Number}
});
var phoneSchema = new mongoose.Schema({
number:{ type: String },
phoneType:{ type: Number }
})
var memberSchema = new mongoose.Schema({
firstname: {
type: String
},
lastname: {
type: String
},
phone:[phoneSchema],
contacts:[contactSchema]
});
//RETURN MODEL
module.exports = mongoose.model('member', memberSchema);
Чтобы удалить элемент с телефона, в моем Express API я сначала нахожу родителя, а затем ссылаюсь на «удалить» для дочернего идентификатора, как здесь. Но это не работает.
router.route('/владелец/:ownerId/телефон/:phoneId')
.delete(function(req, res){
Member.findOne({_id: req.body.ownerId}, function(err, member){
member.phone.remove({_id: req.body.phoneId}, function(err){
if(err)
res.send(err)
res.json({message: 'Success! Phone has been removed.'})
});
});
});