从 mongodb 中的对象数组中删除 id
Remove id from array of objects in mongodb
我尝试删除 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 }
Email 变量和 oldDirectory 变量正确。
我的ID是:5b5e5f34cfcd3906c8e6aa20
在我的数据库中相同:
有什么问题?
谢谢!
试试这个,从对象数组
中将语法更正为 $pull
directoryModel.update(
{ "email": email, "directory": { "$elemMatch": { "name": oldDirectory } } },
{ "$pull": { "directory.$.list": id } }
})
我尝试删除 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 }
Email 变量和 oldDirectory 变量正确。
我的ID是:5b5e5f34cfcd3906c8e6aa20
在我的数据库中相同:
有什么问题? 谢谢!
试试这个,从对象数组
中将语法更正为$pull
directoryModel.update(
{ "email": email, "directory": { "$elemMatch": { "name": oldDirectory } } },
{ "$pull": { "directory.$.list": id } }
})