ArangoDB提前请求唯一密钥

时间:2015-10-20 18:54:12

标签: key unique document arangodb generated

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

  1. 用户登录和Web应用程序从ArangoDB(通过NodeJS)
  2. 接收唯一密钥
  3. 用户创建新文档,Web App为其分配步骤1中给出的唯一密钥
  4. Web应用程序立即请求一个新的唯一密钥,以便在使用前一个密钥时使用
  5. 用户使用步骤1中的唯一键将新创建的文档保存到数据库中的多个集合之一
  6. Web应用程序更新文档的本地缓存,无需等待数据库中的自动生成密钥
  7. 从第2步开始
  8. 这只是对预期工作流程的粗略概述。我相信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 个答案:

答案 0 :(得分:6)

键始终与集合相关。完整文档_id始终由集合名称和文档密钥组成。

如果您想自己定义密钥,只需在将_key属性保存到w集合时将其作为文档的一部分提供。当然,这意味着选择唯一密钥并解决任何冲突(即由于重复密钥导致的失败保存)成为您的应用程序的责任。如果您不介意格式,UUID是一个不错的选择。