2016-02-16 3 views
1

Как использовать хранилище с сохраненными ключами в ArangoDB? Я хочу хранить Google Certificates в ArangoDB наиболее эффективным способом или лучше - самый удобный способ, который был бы ассоциативной матрицей соответственно. ключ-значение. Но я ничего не могу найти в базе данных.Значение ключа ArangoDB для хранения сертификатов Google

Solutions Я придумал это сделать один документ, который будет wtorage для всех ключей и я Acces его как db.Certificates.document('certificates')[hash] и второй для хранения таких документов, как db.Certificates.insert({'_key': hash, 'value': '.... google certificate ....'}), которые я бы доступ в db.Certificates.document(hash).value

Я не» t как эти решения, поскольку они не кажутся правильными, значения на один уровень глубже, как я ожидал бы от хранения ключей. Или существует ли более быстрый способ хранения сертификатов? Может быть, как-то в ОЗУ вместо хранилища db? Мне нужно, чтобы они были доступны во всех приложениях моего приложения foxx и меняли их, когда они истекают. Спасибо.

+0

этих ключей проблема частых изменения ? Если нет, почему бы просто не использовать его внутри исходного кода службы foxx? – dothebart

+0

Да, они меняются, я думаю, раз в день. –

+0

Был ли ответ полностью заполнен вашими потребностями? Если нет, чего не хватает? Если, можете ли вы отметить его принято? – dothebart

ответ

2

Если вы не нужны данные быть постоянным, вместо этого вы можете использовать летучую коллекцию. Пакеты Volatile никогда не будут синхронизироваться с диском, поэтому документы (но не сама коллекция) будут потеряны между перезагрузками - но они довольно быстренько, потому что данные хранятся только в ОЗУ.

Вы можете создать летучие коллекции, как регулярная коллекция, передавая isVolatile вариант:

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

Вы можете найти более подробную информацию в главе о создании коллекций: https://docs.arangodb.com/Collections/DatabaseMethods.html#create

1

Нет, коллекции - это абсолютно путь.

Вы бы разобрать JSON с помощью JSON.parse(), затем итерацию и сохранить их как этот

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

и позже взять его с помощью AQL:

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