我正在开发一个实时网络应用程序。后端是NodeJS和ArangoDB。我想在创建文档之前生成并向Web应用程序发送一个唯一的_key。这样,可以快速创建文档,而无需等待来自服务器的响应和新生成的ID。澄清:
这只是对预期工作流程的粗略概述。我相信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多个集合的唯一键?有没有不同的方法来解决这个问题?
答案 0 :(得分:6)
键始终与集合相关。完整文档_id
始终由集合名称和文档密钥组成。
如果您想自己定义密钥,只需在将_key
属性保存到w集合时将其作为文档的一部分提供。当然,这意味着选择唯一密钥并解决任何冲突(即由于重复密钥导致的失败保存)成为您的应用程序的责任。如果您不介意格式,UUID是一个不错的选择。