用于存储 Google 个证书的 ArangoDB 键值

ArangoDB key value to store Google certificates

如何在 ArangoDB 中使用承诺的键值存储? 我想以最有效或更好的方式将 Google Certificates 存储在 ArangoDB 中 - 最方便的方式,这将是关联数组 resp。核心价值。但是我在数据库中找不到任何相关信息。

我想出的解决方案是制作一个文档,它将存储所有密钥,我会像 db.Certificates.document('certificates')[hash] 一样访问它,其次是存储像 db.Certificates.insert({'_key': hash, 'value': '.... google certificate ....'}) 这样我可以访问的文档作为 db.Certificates.document(hash).value

我不喜欢这些解决方案,因为它们看起来不对,值比我期望的键值存储更深一层。或者有没有更快的方法来存储证书?也许以某种方式在 RAM 而不是数据库存储中?我需要它们在我的 foxx 应用程序的所有调用中都可以访问,并在它们过期时更改它们。 谢谢。

不,Collections 绝对是正确的选择。

您将使用 JSON.parse() 解析 json,然后像这样迭代并保存它们

db.certificates.save({_key: hashkey, value: certificate})

稍后使用 AQL 获取它:

FOR cert IN certificates FILTER _key == '<hashkey>' RETURN cert

如果不需要持久化数据,可以使用易失性集合。易失性集合永远不会同步到磁盘,因此文档(但不是集合本身)将在重新启动之间丢失——但它们要快得多,因为数据只存在于 RAM 中。

您可以通过传递 isVolatile 选项来创建像常规集合一样的可变集合:

var db = require('org/arangodb').db;
var volatileCollection = db._create('temp', {isVolatile: true});

您可以在有关创建集合的章节中找到更多信息:https://docs.arangodb.com/Collections/DatabaseMethods.html#create