Как «Импортировать запросы» в веб-интерфейс ArangoDB?

#import #format #arangodb

#импорт #форматирование #arangodb

Вопрос:

«Экспортировать запросы» не работает на вкладке «Запрос» веб-интерфейса, поэтому я попытался вручную создать json с запросом и импортировать его, но следующее определение неясно:

 Format: 
JSON documents embedded into a list:

[{
    "name": "Query Name",
    "value": "Query Definition",
    "parameter": "Query Bind Parameter as Object"
}]
  

Какое экранирование должно иметь значение value , является ли parameter обязательным и каков формат в случае, если определено несколько параметров привязки.

Мне не удалось импортировать следующий скрипт:

 [{
    name: "Create Random Complex Users (num, outpUsers)",
    value: '// Create specified number of users in the users Vertex collection
FOR i IN 1..@usersNum
  INSERT {
    id: 100000   i,
    age: 18   FLOOR(RAND() * 50),  // RAND generate float E {0, 1]
    name: CONCAT('user', TO_STRING(i)),
  } IN @@users'
}
]
  

Что не так и как это следует исправить?

ПРИМЕЧАНИЕ: версия ArangoDB: arangosh (ArangoDB 3.0.10 [linux] 64bit, using VPack 0.1.30, ICU 54.1, V8 5.0.71.39, OpenSSL 1.0.1f 6 Jan 2014)

При использовании JSON, исправленного @mpv1989, в веб-интерфейсе появляется следующая ошибка: Query error: queries could not be imported . И следующее сообщение находится в журнале с использованием базы данных с именем test от имени пользователя root:

 2016-10-26T12:31:28Z [31690] ERROR Service "/_admin/aardvark" encountered error 500 while handling POST http://localhost:8529/_db/test/_admin/aardvark/query/upload/root
2016-10-26T12:31:28Z [31690] ERROR ArangoError: users can only be used in _system database
2016-10-26T12:31:28Z [31690] ERROR     at getStorage (/usr/share/arangodb3/js/server/modules/@arangodb/users.js:93:17)
2016-10-26T12:31:28Z [31690] ERROR     at Object.exports.document (/usr/share/arangodb3/js/server/modules/@arangodb/users.js:291:17)
2016-10-26T12:31:28Z [31690] ERROR     at Route._handler (/usr/share/arangodb3/js/apps/system/_admin/aardvark/APP/aardvark.js:153:18)
2016-10-26T12:31:28Z [31690] ERROR     at next (/usr/share/arangodb3/js/server/modules/@arangodb/foxx/router/tree.js:386:15)
2016-10-26T12:31:28Z [31690] ERROR     at /usr/share/arangodb3/js/node/node_modules/lodash/lodash.js:9378:25
2016-10-26T12:31:28Z [31690] ERROR     at Middleware.authRouter.use (/usr/share/arangodb3/js/apps/system/_admin/aardvark/APP/aardvark.js:78:3)
2016-10-26T12:31:28Z [31690] ERROR     at next (/usr/share/arangodb3/js/server/modules/@arangodb/foxx/router/tree.js:388:15)
2016-10-26T12:31:28Z [31690] ERROR     at next (/usr/share/arangodb3/js/server/modules/@arangodb/foxx/router/tree.js:384:7)
2016-10-26T12:31:28Z [31690] ERROR     at next (/usr/share/arangodb3/js/server/modules/@arangodb/foxx/router/tree.js:384:7)
2016-10-26T12:31:28Z [31690] ERROR     at next (/usr/share/arangodb3/js/server/modules/@arangodb/foxx/router/tree.js:384:7)
  

Однако исправленный JSON может быть успешно импортирован в базу данных _SYSTEM! Спасибо @mpv1989.
Похоже, сохранение и импорт фрагментов запросов работает только для _SYSTEM DB…

Комментарии:

1. какую версию ArangoDB вы используете?

2. Последняя версия для Ubuntu с их сайта: «ArangoDB 3.0.10 [linux] 64bit, с использованием VPack 0.1.30, ICU 54.1, V8 5.0.71.39, OpenSSL 1.0.1от 6 января 2014».

Ответ №1:

Какое сообщение об ошибке вы получаете при экспорте / импорте?

Для вашего решения я экспортировал ваш запрос из веб-интерфейса. Вот результат:

 [{
    "name": "Create Random Complex Users (num, outpUsers)",
    "value": "// Create specified number of users in the users Vertex collectionnFOR i IN 1..@usersNumn  INSERT {n    id: 100000   i,n    age: 18   FLOOR(RAND() * 50),  // RAND generate float E {0, 1]n    name: CONCAT('user', TO_STRING(i))n  } IN @@users",
    "parameter": {
        "usersNum": 100,
        "@users": "users"
    }
}]
  

Поле parameter является объектом Json. Если у вас нет никакого параметра bind, просто напишите пустой объект "parameter": {} .

Комментарии:

1. Спасибо @mpv1989, этот JSON можно экспортировать! Думал, к сожалению, это можно было бы сделать только для базы данных _SYSTEM (см. Журнал ошибок выше)…