由于相同的 _id,无法将多个文档添加到 Couchdb

Unable to add multiple docs to Couchdb because of identical _ids

我使用 couchdb 模块来处理 Python 中的 CouchDb。当我尝试插入许多不同的文档时发生了一件奇怪的事情。当我在将这些文档插入数据库之前打印它们时,我看到很多相同的自动生成的 _id 字段。我自己的词典甚至没有这样的键(我的意思是 _id),但 couchdb 仍然会自动生成它们并进行大量克隆。我是这样插入的:

print(mydict) # here I see a lot of identical keys for different elements
db.save(mydict)

好像文档插入的太快了,可能会得到很多相同的_id。我现在使用 python ObjectId() 函数获得硬编码的 _id,而不是默认的 _id 值:

mydict['_id'] = str(ObjectId())

这使我能够插入多个文档 "at once"

您似乎错误地使用了db.save,因为您在使用同一个对象多次调用它时不会插入两个文档。 如果您的数据具有 _id 值,则将完成文档的更新,否则将执行插入。 这些对于 CouchDB 生成重复 ID 应该没有问题,可能是您一遍又一遍地使用相同的 ID。 如果您想在客户端生成 ID,请查看文档的这一部分:https://github.com/djc/couchdb-python/blob/master/couchdb/client.py#L389-395