gpt4 book ai didi

java - 在 arangoDB 的 java 驱动程序中绑定(bind)集合

转载 作者:行者123 更新时间:2023-12-05 04:09:04 25 4
gpt4 key购买 nike

我正在为 ArangoDB 使用 java 驱动程序。我在 String 变量中有一个 JSON 数组,我希望将它插入到表中。我使用以下查询

for r in @fromCollection insert r into @targetCollection

在 web 界面中,插入很顺利,但在 Java 中,我在绑定(bind)这两个变量时遇到了麻烦 -

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

你能帮我将集合名称绑定(bind)为 ArangoDB 中的变量吗?

最佳答案

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

当您想插入 String 变量中包含的 JSON 文档时,您可以为此使用方法 importDocuments(String):

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

与您的查询问题相关:

存在一种特殊类型的绑定(bind)参数用于注入(inject)集合名称。这种类型的绑定(bind)参数的名称以附加的 @ 符号为前缀(因此在查询中使用绑定(bind)参数时,必须使用两个 @ 符号)。有关绑定(bind)参数的更多信息,请查看 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)

关于java - 在 arangoDB 的 java 驱动程序中绑定(bind)集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46683704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com