从mongodb中的对象数组中删除ID

时间:2018-08-03 00:28:14

标签: arrays mongodb mongoose mongodb-query objectid

我尝试删除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

与我的数据库相同

enter image description here

出什么问题了? 谢谢!

1 个答案:

答案 0 :(得分:1)

尝试一下,将语法从对象数组更正为$pull

directoryModel.update(
  { "email": email, "directory": { "$elemMatch": { "name": oldDirectory } } },
  { "$pull": { "directory.$.list": id } }
})