关于mongo 中数组的删除问题$pull为啥删除不了
model结构如下:
var UserSchema = new Schema({
honor: [{"honorName":String,"honorImage":String}],//荣誉
company: { type: String },//所在公司
career:{type:String},//职业
isVip:{type:Number,default:0},//是否vip会员,默认非会员
isChecked:{type:Number,default:0},//是否审核
isDel:{type:Number,default:0},//是否删除
adminId:{type:String},//审核人员Id
intro:{type:String},//个人简介
roleId:{type:String},//属于什么权限 普通用户 管理员 还是超级管理员 跟权限有关
insertTime: { type: Date, default: Date.now },//插入时间
updatedTime: { type: Date, default: Date.now }//更新时间
});
更新honor这个数组的的controller如下:
exports.updateHonor=function(data){
console.log({$elemMatch:{"honorImage":data.honorImage}});
//{ $pull: { results: { $elemMatch: { score: 8 , item: "B" } } } }
return User.update({_id:data._id}, { $pull: { "honor":{$elemMatch:{"honorImage":data.honorImage}}}},{ multi: true });
}
js中参数传递调用如下:
var params={"_id":userId,"honorImage":“xxx”} ;//honorImage是字符串
问题来了=======================》 报Cannot apply $pull to a non-array value的错,查过
mongodb官方文档,貌似没有写错呀。请大神们帮帮忙。
2 回复
官方文档说的是:以下方法将不会起作用,这个以下就是你用的方法。不信你用软件翻译一下。
++!