1

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

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

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

4

2 回答 2

2

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

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

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

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

于 2016-03-29T16:28:04.433 回答
1

不,收藏绝对是要走的路。

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

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

稍后使用 AQL 获取它:

FOR cert IN certificates FILTER _key == '<hashkey>' RETURN cert
于 2016-02-18T16:24:29.557 回答