ArangoDB 键值存储 Google 证书

问题描述 投票:0回答:2

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

我想出的解决方案是制作一个文档,该文档将存储所有密钥,我可以像

db.Certificates.document('certificates')[hash]
一样访问它,第二个是存储像
db.Certificates.insert({'_key': hash, 'value': '.... google certificate ....'})
这样的文档,我可以像
db.Certificates.document(hash).value

一样访问它

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

google-api key-value arangodb foxx
2个回答
2
投票

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

您可以通过传递

isVolatile
选项来创建像常规集合一样的易失性集合:

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

您可以在有关创建集合的章节中找到更多信息:https://docs.arangodb.com/3.11/develop/javascript-api/@arangodb/db-object/#db_createcollection-name--properties--type- -选项


1
投票

不,收藏绝对是正确的选择。

您可以使用

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

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

然后使用 AQL 获取它:

FOR cert IN certificates FILTER _key == '<hashkey>' RETURN cert
© www.soinside.com 2019 - 2024. All rights reserved.