私はapoc.load.json()を1回呼び出すだけで、複数の配列プロパティをUNWINDしようとしています。私が持っているバージョンは完全には機能しません。いくつかの関係はロードされません。私の推測では、それはWITHコマンドによる出力の配管によるものです。配列ベースのプロパティごとにアンワインドを別々に実行すると、すべての負荷がかかることがありますが、どのようにまとめて行うことができるのか不思議です。JSONファイルからロードされた無関係の複数の配列をアンワインド
任意の洞察力とポインタが高く評価されている=)
//LOAD CLASSES AND UNWIND COMMON ITEMS,COMPANIONS,LOCATIONS
CALL apoc.load.json("file:///c://pathToFile//classes.json") YIELD value AS class
MERGE (c:Class {name: class.name})
SET
c.strength = class.strength,
c.intelligence = class.intelligence,
c.dexterity = class.dexterity,
WITH c, class.items AS items, class.companions AS companions, class.locations AS locations
UNWIND items AS item
UNWIND companions AS companion
UNWIND locations AS location
MERGE (i:Item {name: item})
MERGE (i)-[:LIKELY_HAS]->(c)
MERGE (c)-[:LIKELY_BELONGS_TO]->(i)
MERGE (comp:Class {name: companion})
MERGE (comp)-[:LIKELY_COMPANION_OF]->(c)
MERGE (c)-[:LIKELY_ACCOMPANIED_BY]->(comp)
MERGE (l:Location {name: location})
MERGE (l)-[:LIKELY_LOCATION_OF]->(c)
MERGE (c)-[:LIKELY_LOCATED_IN]->(l)
JSONファイル内のエントリの例:
{
"name": "KNIGHT",
"strength": [75,100],
"intelligence": [40,80],
"dexterity": [40,85],
"items": [
"SWORD",
"SHIELD"
],
"companions":[
"KNIGHT",
"SERVANT",
"STEED"
],
"locations": [
"CASTLE",
"VILLAGE",
"CITY"
]
}
jsonファイルのオブジェクトを貼り付けることはできますか? –
良い点;完了=) – VeraKozya