在Mongoose的Models中如何删除数组中特定位置的数据?
问题描述
如何删除mongodb中的数组里面特定位置的数据?
如这样的一个飞机的实体:
number:B-xxxx,
components:[fuselage,wings,engines,landinggears]
我现在希望删除components中的第三个数据,但是没有找到办法按照索引删除。
问题出现的环境背景及自己尝试过哪些方法
想要删除实例中的数组的数据,一般使用$pop或者$pull方法。
但是$pop只能删除第一位或者最后一位的数据,$pull方法必须规定要删除的数据的名称
相关代码
var jobcardSchema = new mongoose.Schema({
AIRPLANENUMBER:{type:String,unique:false,requied:true},
MAINTAINNUMBER:{type:String,unique:false},
MAINTAINDATE:{type:Date},
MISSION:{type:Array}
},{versionKey:'_somethingElse'});
var jobcard = mongoose.model('dbjobcard',jobcardSchema,'JOBCARD');
jobcard.findOneAndUpdate({AIRPLANENUMBER:"xxxx",MAINTAINNUMBER:'xxx'},{$pop:{MISSION:-1}},function(err,result){});
// 这样的方法只能删除第一位的数据
求救,MAYDAY
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
对应的mongo shell脚本写法:
db.jobcard.update({AIRPLANENUMBER:"xxxx",MAINTAINNUMBER:'xxx'},{$pullAll:{MISSION:['fuselage']}})
参考文档:$pullAll