不知何故,我的数据库中有一个没有
_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();
好吧,所以我仍然不知道有问题的文档是如何创建的,但我可以简单地使用以下命令将其删除:
Person = mongoose.model('entries', personSchema);
await Person.deleteOne({key: "abc123"});
然后验证是否删除了正确的条目。