Tôi có một tập hợp các dữ liệu cho một cây gia đình trong Neo4J và đang cố gắng xây dựng một truy vấn Cypher đó tạo ra một dữ liệu JSON thiết lập tương tự như sau:Tạo Tree Gia đình có Neo4J
{Name: "Bob",
parents: [
{Name: "Roger",
parents: [
Name: "Robert",
Name: "Jessica"
]},
{Name: "Susan",
parents: [
Name: "George",
Name: "Susan"
]}
]}
đồ thị của tôi có một mối quan hệ của PHỤ HUYNH giữa các nút THÀNH VIÊN (tức là MATCH (p.Member) - [: PHỤ HUYNH] -> (c.Member)). Tôi thấy Nested has_many relationships in cypher và neo4j cypher nested collect mà kết thúc lên nhóm tất cả các bậc cha mẹ cùng nhau cho nút con chính tôi đang tìm kiếm.
Thêm một số sự rõ ràng dựa trên phản hồi:
Mọi thành viên đều có số nhận dạng duy nhất. Các công đoàn hiện đang liên kết với mối quan hệ PARENT. Tất cả mọi thứ được lập chỉ mục để hiệu suất sẽ không bị ảnh hưởng. Khi tôi chạy một truy vấn để lấy lại biểu đồ nút, tôi nhận được kết quả mà tôi mong đợi. Tôi đang cố gắng trả lại một đầu ra mà tôi có thể sử dụng cho mục đích trực quan với D3. Lý tưởng nhất điều này sẽ được thực hiện với một truy vấn Cypher như tôi đang sử dụng API để truy cập neo4j từ giao diện người dùng đang được xây dựng.
Thêm một truy vấn mẫu:
MATCH (p:Person)-[:PARENT*1..5]->(c:Person)
WHERE c.FirstName = 'Bob'
RETURN p.FirstName, c.FirstName
Truy vấn này trả về một danh sách mỗi phụ huynh cho năm thế hệ, nhưng thay vì hiển thị hệ thống phân cấp, nó niêm yết 'Bob' như đứa trẻ đối với từng mối quan hệ. Có một truy vấn Cypher mà sẽ hiển thị mỗi mối quan hệ trong dữ liệu ít nhất? Tôi có thể định dạng nó như tôi cần phải từ đó ...
Thông tin thêm xin vui lòng; bạn đang sử dụng REST API hay một DB nhúng? Nếu bạn đang sử dụng API REST, vấn đề của bạn có thể được đơn giản hóa thành nhiệm vụ chuyển đổi JSON mà API REST tách ra, vào cấu trúc này mà bạn đang tìm kiếm. http://neo4j.com/docs/stable/rest-api.html – FrobberOfBits