用于存储 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
如何在 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