2016-02-16 33 views
1

如何在ArangoDB中使用承諾的關鍵值存儲? 我想以最有效的方式或更好的方式將Google Certificates存儲在ArangoDB中 - 最方便的方式,這將是關聯數組或resp。核心價值。但是我在數據庫中找不到任何關於它的東西。ArangoDB存儲Google證書的關鍵值

解決方案,我想出了是做一個文件,該文件會被wtorage所有密鑰和我存取權限像db.Certificates.document('certificates')[hash]和第二是存儲像db.Certificates.insert({'_key': hash, 'value': '.... google certificate ....'})文件,就我作爲訪問db.Certificates.document(hash).value

我不不喜歡這些解決方案,因爲它們看起來不正確,價值比我預期的關鍵值存儲更深一層。還是有更快的方式來存儲證書?也許不知何故在RAM而不是數據庫存儲?我需要他們在我的foxx應用程序的所有調用中都可以訪問,並在他們到期時進行更改。 謝謝。

+0

這些是按鍵問題頻繁變動

您可以通過傳遞isVolatile選項來創建一個揮發性集合像一個普通的集合?如果不是,爲什麼不簡單地將它放在foxx服務源代碼中? – dothebart

+0

是的,他們每天都會改變一次。 –

+0

答案是否滿足您的需求?如果沒有,缺少什麼?如果,你能否接受它? – dothebart

回答

2

如果你不需要的數據要持久,您可以使用易變的集合。易失性集合將永遠不會同步到磁盤,因此文檔(但不是集合本身)在重新啓動之間將丟失 - 但它們速度更快,因爲數據只存在於RAM中。

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

你可以找到關於創建集合一章中的更多信息:https://docs.arangodb.com/Collections/DatabaseMethods.html#create

1

不,收藏品是絕對要走的路。

你會使用JSON.parse()解析JSON,然後遍歷並保存他們喜歡這個

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

後來就用它拿來AQL:

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