2017-10-11 37 views
2

我为ArangoDB使用java驱动程序。 我有一个字符串变量的JSON数组,我希望它被插入到表中。我用下面的查询在arangoDB的java驱动程序中绑定集合

for r in @fromCollection insert r into @targetCollection 

在Web界面中插入顺利,但在Java中,我用结合这2个变量面临的麻烦 - 有约束力的集合名称作为变量

1553 - ERROR_QUERY_BIND_PARAMETER_TYPE 
Will be raised when a bind parameter has an invalid value or type 

你能帮助我在ArangoDB?

+0

不要忘记标记下方为回答,如果不是,请评论为什么。 –

回答

2

我不确定您的JSON字符串变量在此查询中如何起作用。

当你要插入包含在你的字符串变量的JSON文件,您可以使用方法importDocuments(String)为:

ArangoDB arango = new ArangoDB.Builder().build(); 
arango.db().collection("myCollection").importDocuments(jsonArray); 

与您的问题,您的查询:

一种特殊类型绑定的参数存在用于注入集合名称。这种类型的绑定参数的名称前面加上了一个附加@符号(因此,在查询中使用绑定参数时,必须使用两个@符号)。欲了解更多有关绑定参数来看看here

你的查询有看:

for r in @@fromCollection insert r into @@targetCollection 

在Java中,它看起来如下:

ArangoDB arango = new ArangoDB.Builder().build(); 
Map<String, Object> bindVars = new HashMap<>(); 
bindVars.put("@fromCollection", "..."); 
bindVars.put("@toCollection", "..."); 
arango.db().query("for r in @@fromCollection insert r into @@targetCollection", bindVars, null, BaseDocument.class) 
相关问题