Arangodb-是否存在数据字典

问题描述

有人知道arangodb是否有任何可用的数据字典?从本质上讲,我们负责报告,并且能够运行一个查询,使我们能够列出集合和属性,以便可以看到已被添加/删除/更新了,这将对您有所帮助?

基本上等效于oracle中的all_tab_columns会有所帮助。

谢谢

解决方法

您可以使用arangosh命令(more)并使用db._collections()列出数据库中的所有集合。然后,您可以运行查询,查询遍历集合中的每个文档并获取其ATTRIBUTESsource)。

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"