gpt4 book ai didi

Java 与 Neo4j Cypher

转载 作者:行者123 更新时间:2023-12-01 10:11:45 25 4
gpt4 key购买 nike

我想在列表参数中使用 id 创建某个节点(用户)与所有其他节点(项目)之间的关系:
我写了这个查询:

"FOREACH(it in {h_items} | "
" MATCH (u:User),(i:Item)"
" WHERE u.username = "+username+" AND i.itemId = it"
" CREATE (u)-[h:HAVE_HOBBY]->(i)"
" RETURN r

这应该在具有“用户名”的用户与具有 itemId = it 的项目之间创建关系。
它应该是我给予的项目列表上的迭代器:

ArrayList<String> hobby_items = new ArrayList<String>();
HashMap<String, Object> params = new HashMap<String, Object>();
params.put("h_items", hobby_items);
execute(query,param);

这给出了错误:

Invalid use of MATCH inside FOREACH

事实证明 foreach 内部的匹配是不允许的。
编写此查询的编写方式是什么?

最佳答案

这可能对你有用:

MATCH (u:User)
WHERE u.username = { username }
UNWIND { h_items } AS it
MATCH (i:Item)
WHERE i.itemId = it
CREATE (u)-[:HAVE_HOBBY]->(i)
RETURN u, i;

您将提供 {username}{h_items} 作为参数。您的查询返回了未定义的 r,因此此查询返回 ui

关于Java 与 Neo4j Cypher,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36088008/

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