#arangodb
#arangodb
Вопрос:
кто-нибудь знает, есть ли в arangodb какой-либо доступный словарь данных? По сути, мы несем ответственность за отчетность, и было бы полезно иметь возможность запускать запрос, который позволил бы нам получить список коллекций и атрибутов, чтобы мы могли видеть, что было добавлено / удалено / обновлено?
В принципе, эквивалент all_tab_columns в oracle был бы полезен .
Спасибо
Комментарии:
1. Помните, что ArangoDB — это база данных NoSQL, поэтому способ, которым она обрабатывает схемы, отличается от RDBMS. Посмотрите на arangodb.com/docs/stable/aql/functions-document.html чтобы увидеть, как вы можете запрашивать АТРИБУТЫ документов (аналогично столбцам RDBMS)
Ответ №1:
Вы могли бы использовать arangosh
command (больше) и перечислить все коллекции в базе данных с помощью db._collections()
. Затем вы можете запустить запрос, который проходит через каждый документ в коллекции и получает его ATTRIBUTES
(источник).
Пример сценария bash:
#!/bin/bash
read -p "Database: " DATABASE
read -p "Username: " USERNAME
read -s -p "Password: " PASSWORD
echo
ARANGOSH_SCRIPT=$(cat <<-END
const getAttributes = (collection) => db._query(`
FOR rec IN ${collection}
FOR attr IN ATTRIBUTES(rec)
RETURN DISTINCT attr
`).toArray();
db._collections().forEach((collection) => {
if (collection.properties().isSystem) {
// ignore system collections
return;
}
const collectionName = collection.name();
print(`${collectionName}: ${JSON.stringify(getAttributes(collectionName))}`);
});
END
)
arangosh --server.database "$DATABASE"
--server.username "$USERNAME"
--server.password "$PASSWORD"
--javascript.execute-string "$ARANGOSH_SCRIPT"