使用Memgraph纯Docker镜像调用json_util.load_from_path遇FileNotFoundError
解决Memgraph Docker镜像中json_util.load_from_path的FileNotFoundError问题
你遇到的问题核心是Docker容器无法直接访问宿主机文件系统,必须先将宿主机的目标目录挂载到容器内部,再使用容器内的路径调用存储过程。
步骤1:挂载宿主机目录到Docker容器
启动Memgraph容器时,通过-v参数将宿主机存储JSON文件的目录挂载到容器内的某个路径。比如将宿主机的/home/mel/data/挂载到容器的/data/目录:
docker run -p 7687:7687 -v /home/mel/data/:/data/ memgraph/memgraph
步骤2:修改查询中的文件路径
调用json_util.load_from_path时,使用容器内部的挂载路径,不需要file:///前缀:
CALL json_util.load_from_path("/data/data.json") YIELD objects UNWIND objects AS o RETURN o.first_name AS name, o.last_name AS surname;
关键说明
- 容器和宿主机是独立的文件系统,你之前用的
file:///home/mel/data/data.json是宿主机的路径,容器内不存在这个目录,所以会报文件找不到。 - 挂载后,容器内的
/data/目录会同步宿主机/home/mel/data/的内容,此时容器就能访问到data.json文件。
内容的提问来源于stack exchange,提问作者GrandMel
相关产品推荐
相关产品推荐

