问题描述
有人知道arangodb是否有任何可用的数据字典?从本质上讲,我们负责报告,并且能够运行一个查询,使我们能够列出集合和属性,以便可以看到已被添加/删除/更新了,这将对您有所帮助?
基本上等效于oracle中的all_tab_columns会有所帮助。
谢谢
解决方法
您可以使用arangosh
命令(more)并使用db._collections()
列出数据库中的所有集合。然后,您可以运行查询,查询遍历集合中的每个文档并获取其ATTRIBUTES
(source)。
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"