CouchDB-自动增量

CouchDB-自动增量,couchdb,Couchdb,在非复制场景中(或者我们只有一个写主机的场景),下面的方法可以作为一种快速的方法,为小型内部客户数据库提供一个文档自动增量id 插入新客户查询以获取元数据时 然后添加文档计数+已删除文档计数=自动生效 将文档上的属性设置为.oldDBCompatidThatClientSusedTo=auotIncId 这将意味着序列化/同步获取数据库元数据和写入文档的过程,但考虑到每天新增20个客户,这不是问题 我可以想出几种方法: 创建一个返回max(id)的视图,只需将max(id)+1分配给新项目(尽

在非复制场景中(或者我们只有一个写主机的场景),下面的方法可以作为一种快速的方法,为小型内部客户数据库提供一个文档自动增量id

插入新客户查询以获取元数据时

然后添加文档计数+已删除文档计数=自动生效

将文档上的属性设置为.oldDBCompatidThatClientSusedTo=auotIncId


这将意味着序列化/同步获取数据库元数据和写入文档的过程,但考虑到每天新增20个客户,这不是问题

我可以想出几种方法:

  • 创建一个返回
    max(id)
    的视图,只需将
    max(id)+1
    分配给新项目(尽管这里有一些冲突的可能性)
  • 在数据库中存储另一个不是正常记录但仅包含序列值的文档。当您要执行新的插入操作时,从该文档获取当前值,添加一个,将其保存回该文档,如果没有失败,则将该id用于新记录

好主意,但如果文档被删除,max(id)有可能重新分配相同的id-我想可以解决软删除问题。后者是我目前所拥有的,但感觉很恶心。好的一点,我错过了
max(id)
。我可能会坚持使用UUID,并尽量避免使用增量IDID连接并发性如何?您将同时获得一些具有多个连接的重复ID。