我尝试删除ObjectId数组中的ObjectID。
我的模特:
let directoryCollection = new Schema(
{
email: { type: String },
directory: [{
name: { type: String },
list: [ {type: Schema.ObjectId} ]
}]
},
{collection: 'directory'}
);
我在 list 中有一个ObjectID数组。
我的数组中删除索引的代码:
let id = mongoose.Types.ObjectId(req.body.id);
directoryModel.update({'email': email, 'directory.name': oldDirectory}, {$pull: {'directory.list': id} }, function (req, result) {
console.log(result);
res.json('ok');
});
但是结果是:
{ok:0,n:0,nModified:0}
电子邮件变量和oldDirectory变量ara正确。
我的ID是:5b5e5f34cfcd3906c8e6aa20
与我的数据库相同
出什么问题了? 谢谢!
答案 0 :(得分:1)
尝试一下,将语法从对象数组更正为$pull
directoryModel.update(
{ "email": email, "directory": { "$elemMatch": { "name": oldDirectory } } },
{ "$pull": { "directory.$.list": id } }
})