首页 文章

ArangoDB提前请求唯一密钥

提问于
浏览
2

我正在开发一个实时网络应用程序 . 后端是NodeJS和ArangoDB . 我想在创建文档之前生成并向Web应用程序发送一个唯一的_key . 这样,可以快速创建文档,而无需等待来自服务器的响应和新生成的ID . 澄清:

  • 用户登录和Web应用程序从ArangoDB接收唯一密钥(通过NodeJS)

  • 用户创建一个新文档,Web App为其分配在步骤1中给出的唯一键

  • Web应用程序立即请求使用新的唯一密钥,以便使用前一个密钥

  • 用户使用步骤1中的唯一键将新创建的文档保存到数据库中的多个集合之一

  • Web应用程序更新文档的本地缓存,无需等待数据库中的自动生成密钥

  • 从第2步开始

这只是对预期工作流程的粗略概述 . 我相信CouchDB有一个为用户提供唯一ID的功能:http://docs.couchdb.org/en/1.6.1/api/server/common.html?highlight=id#get--_uuids

我确实在ArangoDB文档中找到了这段代码:

FOR i IN 1..10
  INSERT { value: i } IN test
  RETURN { _key: NEW._key, value: i }

它在集合中创建一批唯一键 . 但是,我不确定这里生成的密钥对于所有集合是否是唯一的,或者更可能的是,它们是为它们生成的集合 . 我的应用程序需要一个可用于任何集合的密钥 .

有没有办法获取可以在ArangoDB的多个集合中使用的一个或多个唯一键?有没有不同的方法来解决这个问题?

1 回答

  • 6

    键总是相对于集合 . 完整文档 _id 始终由集合名称和文档密钥组成 .

    如果您想自己定义键,只需在将文档保存到w集合时提供 _key 属性作为文档的一部分 . 当然这意味着它成为您的应用程序's responsibility to pick unique keys and resolve any conflicts (i.e. failed saves due to duplicate keys). UUIDs are a good option if you don' tt格式 .

相关问题