Arangodb- существует ли словарь данных

#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"