如何删除或编辑没有_id的mongodb文档?

问题描述 投票:0回答:1

不知何故,我的数据库中有一个没有

_id
的文档。可以拉取,但无法保存或删除。 该文档如下所示:

{
  name: 'John Smith',
  key: 'abc123',
  data: [
    'Lorem ipsum',
    'dolor sic amet'
  ]
}

我的架构如下所示:

personSchema  = mongoose.Schema({
    name: String,
    data: { type: Array },
    key: String
})

注意,

key
字段与id完全分离并在内部使用,集合中的所有其他文档都有一个_id字段。

以下代码会产生错误

UnhandledPromiseRejectionWarning: MongooseError: No _id found on document!

personSchema  = mongoose.Schema({
    name: String,
    data: { type: Array },
    key: String
});
Person = mongoose.model('entries', personSchema);
let entries = await Person.find({key: "abc123"});
let toDelete;
entries.forEach(entry => {
    if(!entry._id){
        toDelete = entry;
    }
});
toDelete.delete();
node.js mongodb mongoose
1个回答
0
投票

好吧,所以我仍然不知道有问题的文档是如何创建的,但我可以简单地使用以下命令将其删除:

Person = mongoose.model('entries', personSchema);
await Person.deleteOne({key: "abc123"});

然后验证是否删除了正确的条目。

© www.soinside.com 2019 - 2024. All rights reserved.