【问题标题】:Autoincrement in couchdbcouchdb中的自动增量
【发布时间】:2026-01-09 00:05:02
【问题描述】:

我正在尝试使用 nodejs 和 couchdb 编写一个 Web 应用程序。在沙发上我存储我的单独页面的内容。我的问题是什么。。

我会有这样一个不错的网址:

http://mypage.com/content/1/blabla-detail.html
http://mypage.com/content/2/blabla-detail.html
http://mypage.com/content/5/blabla-detail.html
http://mypage.com/content/n/blabla-detail.html

一般

http://mypage.com/content/{OID}/blabla-detail.html

所以我需要类似 couchdb 中的自动增量。当然,我可以使用 _id - 它在 couchdb 中是唯一的,但是......沙发中的 uuid 是长哈希......我不希望在我的网址中使用这个长哈希 :( 我正在寻找一些独特但短的值。

我只是在考虑创建视图以获取文档中所有行的计数,但是……如果同时很少有用户保存新元素,该怎么办。会有问题 - couchdb 没有事务。

我被困住了。

谁能帮我解决这个问题?

【问题讨论】:

  • 您不能在 CouchDB 中进行自动增量,也不应该真正尝试这样做,因为它具有潜在的分布式特性。如果您想构建友好的 URL,您可以根据博客标题生成“slugs”。此外,还有一个名为 Sofa 的现有博客演示,可能值得一试。
  • 我不能使用博客标题来创建友好的网址,因为我希望有许多相同的帖子/页面标题..所以我需要添加一些数字 - 所以我回到我的第一个问题:)

标签: node.js couchdb auto-increment


【解决方案1】:

我不确定我是否收到了您的问题。 因此,您有一个 CDB 数据库,您可以将博客的单独页面存储为文档。然后,您想通过存储为唯一哈希的 _id 访问这些文档。我对吗?由于这些哈希是脏的,你想给它们一个唯一但更漂亮的数字。

如果是这样,我可以推荐你使用Ektorp API。在这里,您通过CouchDBConnector 连接到数据库,然后您可以通过方法getAllDocIds 作为List<String> 调用所有文档。然后你可以简单地编写 REST 服务,并且可以提供更好的 id。希望对您有所帮助。

【讨论】:

    最近更新 更多