0

在创建文档并让 Couch 为您创建 ID 时,它是否会检查 ID 是否已经存在,或者我是否仍会产生冲突?

我需要在我的应用程序中生成 UUID,并想知道这是否与让 Couch 生成有什么不同。

4

3 回答 3

2

为此使用POST /db请求,但您应该知道底层 HTTP POST 方法不是幂等的,并且客户端可能会由于某些网络问题而自动重试它,这可能会在数据库中创建多个文档。

于 2013-10-24T13:11:08.550 回答
1

正如 Kxepal 已经提到的,通常不建议在不提供您自己的 _id 的情况下发布文档。

但是,您可以使用GET /_uuids从服务器检索 UUID 列表并将其用于存储文档。返回的 UUID 将取决于所使用的算法,但重复的可能性(对于大多数目的而言)微不足道。

于 2013-10-24T15:50:45.037 回答
1

即使在使用批量文档界面时,您也可以并且应该提供文档 ID 。跳过该步骤会使重新提交的请求创建重复文档的问题更加严重。另一方面,如果您确实分配了 ID,并且请求的一部分到达 couchdb 两次(如重新连接代理的情况),那么您的响应将包含一些冲突,您可以放心地忽略这些冲突,您知道冲突来自你,在同一个请求中

于 2013-10-26T12:00:48.400 回答