[英]Java with Neo4j Cypher
我想在list參數中使用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);
這給出了錯誤:
在FOREACH中無效使用了MATCH
事實證明,在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
(未定義),因此該查詢返回u
和i
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.