我使用以下aql查询将文件从文件上传到数据库 "FOR document in @file INSERT document INTO @@collection LET newDoc = NEW RETURN newDoc"
. 我为集合中的所有属性创建了一个唯一的哈希索引,因此当尝试上载重复的文档时,我得到一个错误(我想要的),但是文件中的所有文档都没有上传到数据库 . 我想知道是否有一种方法只使用aql查询上传有效文档并跳过错误的文档(在我的情况下是重复文档) .
更新:
我正在使用python,我可以逐个上传文件:
for document in file:
doc = collection.createDocument() #function from pyArango
try:
for key, value in document.iteritems():
doc[key] = value
doc.save()
except:
print "wrong document"
我想知道我是否可以使用aql查询而不是“手动”逐个上传
1 回答
您可以在查询OPTIONS statement中指定
ignoreErrors: true
,如下所示:然后,它将忽略具有冲突的文档,并仅返回实际创建的文档 .
如果您尝试仅返回
_key
字段,则每个失败的文档都会获得null
:结果将如下所示,首先是重复,第二个新生成
_key
,其值为23225
: