MongoDB 中的静默插入失败

Silent insertion failure in MongoDB

我有一个 mongodb 实例 运行,我需要更改每个文档的“_id”字段。 因此,我检索需要更改的文档,修改“_id”,插入修改后的文档,并删除原始文档。一切顺利,但我无法在数据库中看到更改。

doc_id = doc['_id']
inserted = db.candidates.insert_one(doc)
deleted = db.candidates.delete_one({'_id': doc_id})
res = list(db.candidates.find({'_id': inserted.inserted_id}))
assert len(res) >= 1, 'could not retrieve inserted document'

第 4 行的断言对每个文档都失败了。即使 DeleteResult 报告它已被删除,我也可以在数据库中找到已删除的文档。

{'n': 1, 'ok': 1.0}

我一直无法在 Pymongo 文档中找到有关此问题的任何内容,并且我一直无法在线找到类似的问题。我是否漏掉了一些明显的东西?

其他集合和字段的修改似乎工作正常。

您正在插入文档,然后删除同一个文档。这就是为什么您的查找没有 return 任何记录。