ArangoDB 提前请求唯一键
ArangoDB Request Unique Key in Advance
我正在开发一个实时网络应用程序。后端是NodeJS和ArangoDB。我想在创建文档之前生成一个唯一的 _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 中获取一个或多个可用于多个集合的唯一键?有没有不同的方法来解决这个问题?
键总是相对于集合。完整文档 _id
始终由集合名称和文档密钥组成。
如果您想自己定义键,您可以简单地提供一个 _key
属性 作为文档的一部分,然后将其保存到 w 集合。当然,这意味着您的应用程序有责任选择唯一键并解决任何冲突(即由于重复键导致的保存失败)。如果您不介意格式,UUID 是一个不错的选择。
我正在开发一个实时网络应用程序。后端是NodeJS和ArangoDB。我想在创建文档之前生成一个唯一的 _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 中获取一个或多个可用于多个集合的唯一键?有没有不同的方法来解决这个问题?
键总是相对于集合。完整文档 _id
始终由集合名称和文档密钥组成。
如果您想自己定义键,您可以简单地提供一个 _key
属性 作为文档的一部分,然后将其保存到 w 集合。当然,这意味着您的应用程序有责任选择唯一键并解决任何冲突(即由于重复键导致的保存失败)。如果您不介意格式,UUID 是一个不错的选择。