Node.js $pull不起作用
我想在删除am项目时从餐厅中删除该项目引用。我所做的是,我做了一个方法,从餐馆里取出那个东西,但它不起作用。我发现了类似MongoError的错误:无法将$pull/$pullAll修饰符应用于非数组 这是我的餐厅模式:Node.js $pull不起作用,node.js,mongoose,Node.js,Mongoose,我想在删除am项目时从餐厅中删除该项目引用。我所做的是,我做了一个方法,从餐馆里取出那个东西,但它不起作用。我发现了类似MongoError的错误:无法将$pull/$pullAll修饰符应用于非数组 这是我的餐厅模式: var Restaurant = new Schema({ name: [languageData], description: [languageData], phone: String, email: String, items:
var Restaurant = new Schema({
name: [languageData],
description: [languageData],
phone: String,
email: String,
items: [{ type: ObjectId, ref: 'Item' }]
});
exports.restaurantModel = mongoose.model("Restaurant", Restaurant);
这是我从餐厅提取物品的功能:
restaurantModel.update({'_id' : restId}, {'$pull': {'items': itemId}}, function(err,data){
if (!err) {
console.log("Refrence of Item is updated"+data);
} else {
console.log("Error : " +err);
}
});
我不明白是什么问题。我甚至尝试使用multi:true和upsert:false,但仍然有一个错误。。请帮我解决这个问题。请发布您的餐厅架构,并验证您尝试更新的特定餐厅文档在其
项中是否确实包含ObjectID数组property.var Restaurant=new schema({name:[languageData],description:[languageData],电话:字符串,电子邮件:字符串,项:[{type:ObjectId,ref:'Item'}],});exports.restaurantModel=mongoose.model(“餐厅”,餐厅);请编辑您的问题,并将其作为格式良好的代码段。但是在你的评论中没有格式的阅读它,它看起来是正确的。我怀疑您的数据库中有一个与此架构不匹配的现有文档。请发布此文档的响应:restaurandModel.find({u id:restId},function(err,data){console.log(data);})代码>