【问题标题】:ArangoDB key value to store Google certificates用于存储 Google 证书的 ArangoDB 键值
【发布时间】:2016-02-16 15:20:54
【问题描述】:

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

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

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

【问题讨论】:

  • 这些键是否会导致频繁更改?如果没有,为什么不把它放在 foxx 服务源代码中?
  • 是的,我猜他们每天都会改变一次。
  • 答案是否满足您的需求?如果没有,缺少什么?如果,你能把它标记为接受吗?
  • 您提出了我已经知道的解决方案,但我正在寻找更好的解决方案。
  • 易失性收集是否适合您的需求?您可以将 Alans 的回答标记为已接受吗?

标签: google-api key-value arangodb foxx


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

    稍后使用 AQL 获取它:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-07
      • 1970-01-01
      • 2014-05-10
      • 2018-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多