2
Neo4j-Dbに接続するためにNeo4j-Bolt-Driverを使用するNode.jsで残りのAPIを構築しようとしています。Neo4j JSONとしてのデータのシリアル化
グラフの終点と複雑さが増すにつれて、多くの長いCypherクエリを記述して維持するのがずっと難しくなっています。
私は、他のノードといくつかの関係を含むはずの移入されたJSONオブジェクトを扱うのにはいくつかの困難を抱えています。
以下は、GET/api/meエンドポイントのaのクエリです。
MATCH (user:User) WHERE user.uuid = {userId}
OPTIONAL MATCH (user)-[:PROFILE_IMAGE]->(profileImage:Image)
OPTIONAL MATCH (user)-[:HEADER_IMAGE]->(headerImage:Image)
OPTIONAL MATCH (user)-[:OWNS]->(productToEmbed:Product)-[:TYPE]->(productType:ProductType)
WITH user, COLLECT(productToEmbed{.*, type: productType.name }) AS products
RETURN user{.*, products: products, profileImage: profileImage{.*}, headerImage: headerImage{.*}}
ユーザーに接続されているノードのラベルが異なると、さらに悪化します。その場合、正しいと感じていない関連フィールドに正しく挿入するために、私はcypherクエリにswitch case式を記述する必要があります。
これに関するご提案はありますか?