在创建文档并让 Couch 为您创建 ID 时,它是否会检查 ID 是否已经存在,或者我是否仍会产生冲突?
我需要在我的应用程序中生成 UUID,并想知道这是否与让 Couch 生成有什么不同。
在创建文档并让 Couch 为您创建 ID 时,它是否会检查 ID 是否已经存在,或者我是否仍会产生冲突?
我需要在我的应用程序中生成 UUID,并想知道这是否与让 Couch 生成有什么不同。
为此使用POST /db请求,但您应该知道底层 HTTP POST 方法不是幂等的,并且客户端可能会由于某些网络问题而自动重试它,这可能会在数据库中创建多个文档。
正如 Kxepal 已经提到的,通常不建议在不提供您自己的 _id 的情况下发布文档。
但是,您可以使用GET /_uuids
从服务器检索 UUID 列表并将其用于存储文档。返回的 UUID 将取决于所使用的算法,但重复的可能性(对于大多数目的而言)微不足道。
即使在使用批量文档界面时,您也可以并且应该提供文档 ID 。跳过该步骤会使重新提交的请求创建重复文档的问题更加严重。另一方面,如果您确实分配了 ID,并且请求的一部分到达 couchdb 两次(如重新连接代理的情况),那么您的响应将包含一些冲突,您可以放心地忽略这些冲突,您知道冲突来自你,在同一个请求中