Source: https://dev-docs.yueshu.com.cn/v5.3.2/get-started/first-query/ Documentation version: v5.3.2 # 连接并完成首次查询 通过悦数图管理连接悦数图数据库开发版,加载`movie`示例数据集,再查询一部电影及其参演演员。以下四步均在浏览器中完成。 ## 前提条件 - 已按[使用 Docker Compose 部署开发版](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/deploy/)启动悦数图数据库开发版和配套悦数图管理。 - 已准备好当前的`root`密码。 ## 1. 登录悦数图管理 在运行 Docker 的开发机上,用浏览器打开 [http://127.0.0.1:7001](http://127.0.0.1:7001)。 在其他电脑上访问或使用自定义端口 浏览器通过`7001`端口访问悦数图管理,悦数图管理通过`graph-cluster:9669`连接悦数图数据库开发版。 从其他电脑访问时,打开`http://<开发机IP>:7001`,将`<开发机IP>`替换为运行 Docker 的机器 IP 地址。 如果修改了`compose.yaml`中的`7001:7001`端口映射,将访问地址中的端口改为冒号左侧的开发机端口。 在登录页面确认或填写以下信息,然后单击登录: | 字段 | 值 | 地址 | `graph-cluster` | 端口 | `9669` | 用户名 | `root` | 密码 | 当前的`root`密码。配套文件中的初始密码为`YueshuGraph01`;如已修改,请填写修改后的密码。 登录成功后,顶部导航栏中可见 SCHEMA 管理和控制台。 ## 2. 加载`movie`示例数据 Schema 类似文件夹,用于组织图类型和图。本文使用系统创建的默认 Schema:`/default_schema`。 1. 在顶部导航栏中单击 SCHEMA 管理页签。 2. 确认左侧顶部选中的 Schema 为`default_schema`。 3. 在页面中央单击使用示例数据集。 4. 等待加载完成。成功后会打开`movie_type`的图类型详情页。 加载会创建图类型`movie_type`和图`movie`,并写入电影、演员等点及其关系。`movie_type`定义数据结构,后续查询使用图`movie`。 加载成功后,使用示例数据集入口不再显示。再次访问时,直接从[第 3 步](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/first-query/#select-graph)继续查询,无需重复加载。 ## 3. 查询电影 在顶部导航栏中单击控制台。将以下语句粘贴到查询编辑器,并单击运行按钮,查询编号为`3`的电影: ```` USE movie MATCH (m@Movie {id: 3}) RETURN m.id AS movie_id, m.name AS movie ```` 预期结果: | movie_id | movie | 3 | "Shadows in Paradise" 查询各部分的含义: - `USE movie`指定本次查询访问的图。 - `MATCH`查找符合条件的点,`@Movie`指定电影类型,`{id: 3}`指定电影编号。按编号可以区分同名电影。 - `RETURN`选择要显示的属性,`AS`为结果列命名。 `movie`是图名,`Movie`是点类型名称,名称区分大小写。 为会话设置工作图 本文通过`USE movie`为每条查询指定图,该设置只对所在查询生效。也可以先为会话设置工作图: ```` SESSION SET GRAPH movie ```` 然后省略查询开头的`USE movie`: ```` MATCH (m@Movie {id: 3}) RETURN m.id AS movie_id, m.name AS movie ```` 重新连接后,需重新设置工作图。更多信息见 [USE](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/dql/clauses/use-graph/)。 ## 4. 查询参演演员 在同一控制台中,将电影查询替换为以下语句并运行,查找这部电影的参演演员: ```` USE movie MATCH (a@Actor)-[:Act]->(m@Movie {id: 3}) RETURN a.id AS actor_id, a.name AS actor, m.name AS movie ORDER BY actor_id ```` 预期结果: | actor_id | actor | movie | 4826 | "Matti Pellonpää" | "Shadows in Paradise" | 4828 | "Sakari Kuosmanen" | "Shadows in Paradise" | 5999 | "Kati Outinen" | "Shadows in Paradise" `(a@Actor)-[:Act]->(m@Movie)`匹配演员参演电影的关系,箭头从演员指向电影。`ORDER BY actor_id`按演员编号排序。 退出并恢复查询 在悦数图管理中,通过页面右上角的用户菜单选择退出登录;在 [ngql](https://dev-docs.yueshu.com.cn/v5.3.2/utilities/ngql/usage/) 中执行`:exit`。退出客户端后,悦数图数据库开发版继续运行,数据保留。需要停止服务时,按[停止和重新启动服务](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/deploy/#stop-start)操作。 下次[登录悦数图管理](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/first-query/#connect)后,从[第 3 步](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/first-query/#select-graph)继续查询,无需重新加载`movie`。 ## 其他连接方式 以下客户端访问同一悦数图数据库开发版实例。数据加载一次后,可在任一客户端继续查询。 使用 ngql 连接和加载示例数据 1. 在开发机终端中进入`compose.yaml`所在目录,执行: ```` docker compose exec ngql ngql --host graph-cluster --port 9669 --user root ```` 第一个`ngql`是 Compose 服务名,第二个是容器内的客户端命令。`graph-cluster:9669`是容器网络内的查询地址,保留该值。 2. 看到`Password`提示后,输入`root`账号的当前密码并按 Enter。 3. 尚未在`/default_schema`中加载`movie`时,执行以下命令;已加载成功时,跳过此步。 ```` :play movie ```` 开始时显示`Playing dataset: movie...`,成功时显示`Play dataset: movie done.`。加载失败时,按[数据加载行为](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/dataset/#load-behavior)检查已创建的对象和错误信息。 接着,在`ngql`交互窗口中按[查询电影](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/first-query/#select-graph)和[查询参演演员](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/first-query/#5)运行示例。 输入多行查询时,首尾各用一行`'''`包围语句。输入最后一行并按 Enter 后提交: ```` ''' USE movie MATCH (a@Actor)-[:Act]->(m@Movie {id: 3}) RETURN a.id AS actor_id, a.name AS actor, m.name AS movie ORDER BY actor_id ''' ```` `:play movie`是`ngql`客户端命令,不能在悦数图管理或内置网页控制台的查询编辑器中执行。 使用内置网页控制台连接 悦数图数据库控制台是 Graph 服务内置的查询界面,与悦数图管理分别提供访问入口: | 浏览器所在位置 | 访问地址 | 与 Docker 在同一台开发机 | `http://127.0.0.1:19669/ui/console` | 在另一台电脑 | `http://<开发机IP>:19669/ui/console` 将`<开发机IP>`替换为运行 Docker 的机器 IP 地址。配套配置使用 HTTP;修改过`19669:19669`端口映射时,使用冒号左侧的开发机端口。 在连接窗口中输入用户名`root`和该账号的当前密码,然后单击 Connect。在编辑器中逐条执行[第 3 步](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/first-query/#select-graph)和第 4 步的语句,单击运行按钮执行;多行语句直接粘贴。 尚未加载数据时,先通过悦数图管理或[`ngql`](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/first-query/#ngql)加载,再返回此界面查询。 ## 问题排查 图管理访问与登录检查 - 网页无法打开:按[无法打开 Studio](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/deploy/#studio-troubleshooting) 检查服务状态、端口和日志。 - 网页可打开但无法登录:核对[第 1 步](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/first-query/#connect)中的地址、端口、用户名和实际密码。需要更改已有实例的密码时,按[修改已有实例的 root 密码](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/deploy/#change-root-password)操作。 登录时使用实际密码;`compose.yaml`中的`$$`对应实际密码中的单个`$`。 参数无误时,按[检查服务状态](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/deploy/#check-services)确认`graphd`正在运行。在开发机终端的部署目录中查看 Graph 服务日志,按错误信息排查: ```` docker compose logs --tail 100 graphd ```` 示例数据加载检查 加载报错时,按[数据加载行为](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/dataset/#load-behavior)检查错误信息和已创建的对象。已成功加载的`movie`无需再次加载,重复加载可能造成名称冲突。 验证查询连接 需要单独验证连接时,在悦数图管理顶部导航栏中单击控制台,在输入框中粘贴以下语句并单击运行按钮: ```` RETURN 1 AS result ```` 应返回一列`result`,值为`1`。这条语句不依赖示例图数据,可用于检查连接和基本查询是否正常。 查询结果检查 查询报错或结果为空时,先核对图名`movie`和点类型`Movie`的大小写,再在同一控制台中逐条执行: ```` SHOW CURRENT_SCHEMA ```` 结果中`path`应为`/default_schema`。如果不是,执行`SESSION SET SCHEMA /default_schema`切回默认 Schema。 ```` SHOW GRAPH TYPES ```` 结果应列出图类型`movie_type`。 ```` SHOW GRAPHS ```` 结果应列出图`movie`,其图类型为`movie_type`,所属 Schema 为`/default_schema`。 如果加载曾中断,图名存在也不代表数据完整。先按[数据加载行为](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/dataset/#load-behavior)检查错误和已有对象,再继续查询,避免反复加载造成名称冲突。 ## 下一步 - [示例数据集:movie](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/dataset/):查看完整数据模型。 - [GQL 入门:创建图并完成增删改查](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/overview/first-steps/):练习创建图、写入、更新和删除数据。 - [应用开发教程](https://dev-docs.yueshu.com.cn/v5.3.2/app-development/):将电影查询接入应用。