簡體   English   中英

neo4j cypher嵌套收集

[英]neo4j cypher nested collect

想象一下帶有用戶,專輯和照片的相冊模式:

User -[owns]-> Album -[contains]-> Photo

我可以進行嵌套收集以獲取嵌套在相冊中的照片,以及嵌套在用戶中的相冊嗎? 我想要的結果類似於:

{ "users": [
    { "name": "roger dodger",
      "albums": [
        { "album": "album1",
          "photos": [
            {"url": "photo1.jpg"},
            {"url": "photo2.jpg"}
          ]
        }
      ]
    }
  ]
}

這似乎很接近,但我無法修改它以滿足我的需要:cypher中的嵌套has_many關系 (問題是neo4j 2.0 Web控制台不支持該示例中的json語法嗎?)

試試這個查詢:

MATCH (a:USER)-[:owns]->(b:ALBUM)-[:CONTAINS]->(c:PHOTO)
WITH a,b,{url: c.name} as c_photos
WITH a,{album: b.name , photos: collect(c_photos)} as b_albums
WITH {name: a.name, albums: collect(b_albums)} as a_users
RETURN {users: collect(a_users)}

編輯

要獲取節點的所有屬性,可以使用節點的字符串表示形式,然后使用java等單獨解析它

MATCH (a:User)
WITH {user: str(a)} as users
RETURN {users: collect(users)}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM