ArangoDB提前请求唯一密钥



我正在开发一个实时web应用程序。后端是NodeJS和ArangoDB。我想在创建文档之前生成并发送一个唯一的_key到web应用程序。这样就可以快速动态地创建文档,而不必等待服务器用新生成的ID响应。澄清:

  1. 用户登录,Web应用程序从ArangoDB接收唯一密钥(通过NodeJS)
  2. 用户创建一个新文档,Web应用程序为它分配在步骤1中给出的唯一密钥
  3. Web应用程序立即请求一个新的唯一密钥使用,现在,前一个正在使用
  4. 用户使用步骤1中的唯一键将新创建的文档保存到数据库中的多个集合之一
  5. Web应用程序更新文档的本地缓存,而无需等待从数据库自动生成密钥
  6. 从第2步开始

这只是预期工作流程的粗略概述。我相信CouchDB有一个函数,将为用户提供唯一的ID:http://docs.couchdb.org/en/1.6.1/api/server/common.html?highlight=id得到,_uuids

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

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

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

是否有一种方法来获取一个或多个唯一的键,可以在多个集合上使用从ArangoDB?有没有别的方法来解决这个问题?

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

如果您想自己定义键,您可以在将_key属性保存到w集合时提供它作为文档的一部分。当然,这意味着你的应用程序有责任选择唯一的键并解决任何冲突(例如,由于重复的键而失败的保存)。如果您不介意格式,uuid是一个不错的选择。

最新更新