ArangoDB arangoimport导入边数据报edge attribute missing or invalid如何解决
环境信息
- ArangoDB 版本:3.8
- 部署模式:单节点服务器
- 部署方式:手动启动
- 操作系统:Ubuntu 20.04
- 总内存:32Gb
- 存储介质:SSD
- 安装包类型:Ubuntu .deb
- 受影响功能:arangoimport
错误原因及解决方案
你遇到的edge attribute missing or invalid报错,通常由以下几个原因导致,按优先级排查即可:
- 集合类型不匹配
要导入边数据的rel_type集合如果是普通文档集合,ArangoDB会拒绝带有_from/_to属性的文档写入,触发该报错。
排查方式:进入arangosh执行命令验证集合类型:
db._useDatabase("ConceptNet"); db._collection("rel_type").type();
返回值为2代表是边集合,返回3代表是普通文档集合。
如果是文档集合,删除现有空集合重建为边集合即可:
db._collection("rel_type").drop(); db._createEdgeCollection("rel_type");
如果需要让arangoimport自动创建正确类型的集合,导入命令要加上--create-collection-type edge参数。
_from/_to字段格式非法
即使你已经添加了这两个字段,只要值不符合[目标集合名称]/[文档_key]的格式要求,同样会触发校验失败。常见问题包括缺失集合前缀、值为空、包含非法转义字符、字段名大小写错误等。
合法的边数据示例如下:
{"_from": "concept/1001", "_to": "concept/2002", "rel": "is_a", "weight": 0.9}
- 导入命令参数缺失
你可以补全导入命令的类型参数,明确指定文件格式和集合类型:
arangoimport --server.database "ConceptNet" --collection "rel_type" --type jsonl --create-collection-type edge "./ConceptNet/conceptnet.jsonl"
内容的提问来源于stack exchange,提问作者Raphael10
相关产品推荐
相关产品推荐

