如何使用ArangoImp导入JSON/CSV至ArangoDB及路径问题排查
关于Arango Shell查找路径与arangoimp调用的问题解答
首先帮你理清楚核心逻辑:Arango Shell(也就是arangosh)的可执行文件查找路径,完全继承自启动它的系统终端的环境变量PATH。也就是说,当你在arangosh里只输入arangoimp这样的文件名时,它会去系统PATH变量中列出的所有文件夹里依次查找这个可执行文件。如果你的系统PATH没有包含ArangoDB的bin目录,自然会提示找不到工具。
你已经在bin文件夹看到了arangoimp.exe,这里给你几个实用的解决思路:
1. 直接用绝对路径调用arangoimp
在arangosh里,你可以直接指定arangoimp.exe的完整路径来调用它,注意Windows系统下路径的反斜杠要转义,或者改用正斜杠避免报错:
// 替换成你实际的ArangoDB bin目录路径 C:/Program Files/ArangoDB3.x/bin/arangoimp.exe --你的导入参数...
或者用转义后的反斜杠写法:
C:\\Program Files\\ArangoDB3.x\\bin\\arangoimp.exe --你的导入参数...
2. 将ArangoDB的bin目录加入系统PATH(一劳永逸)
配置后不管是在系统终端还是arangosh里,直接输入arangoimp就能找到工具:
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在「系统变量」区域找到
PATH,点击「编辑」 - 点击「新建」,把ArangoDB的
bin文件夹路径粘贴进去(比如C:\Program Files\ArangoDB3.x\bin) - 保存后重启你的系统终端和arangosh,再试
arangoimp就能正常调用了
3. 更推荐的方式:直接在系统终端调用arangoimp
其实arangoimp是独立的命令行导入工具,完全不需要在Arango Shell里运行。你直接打开Windows的命令提示符(CMD)或者PowerShell,切换到ArangoDB的bin目录,或者已经配置PATH的话直接输入arangoimp加上你的导入参数,这样操作更直观,也更容易排查导入时的报错问题。
如果一定要在arangosh里执行外部命令,也可以用Node.js的child_process模块来调用:
const { exec } = require('child_process'); // 替换成你的实际路径和导入参数 exec('C:/Program Files/ArangoDB3.x/bin/arangoimp.exe --file "your-data.csv" --type csv --collection your-collection', (error, stdout, stderr) => { if (error) { console.error(`执行出错: ${error.message}`); return; } if (stderr) { console.error(`工具错误输出: ${stderr}`); return; } console.log(`导入结果: ${stdout}`); });
内容的提问来源于stack exchange,提问作者Code Novice
相关产品推荐
相关产品推荐

