Theo tôi hiểu, các ID do Neo4j cung cấp (ID(node)
) không ổn định và hoạt động giống như số hàng trong SQL. Vì ID được sử dụng chủ yếu cho các mối quan hệ trong SQL và chúng dễ dàng được mô hình hóa trong Neo4j, dường như không có nhiều sử dụng cho ID, nhưng sau đó làm cách nào để bạn giải quyết các nút cụ thể? Có một API REST được cho là có các tuyến đường duy nhất cho mỗi nút (ví dụ: /api/concept/23
) có vẻ như là một trường hợp khá chuẩn cho các ứng dụng web. Nhưng mặc dù nó được rất cơ bản, cách khả thi duy nhất tôi thấy là hoặc thông qua các khuôn khổ cụ thểThuộc tính gia tăng tự động trong Neo4j
- ngôn ngữ
- như một nút chưa được nối mà duy trì gia:
// get unique id
MERGE (id:UniqueId{name:'Person'})
ON CREATE SET id.count = 1
ON MATCH SET id.count = id.count + 1
WITH id.count AS uid
// create Person node
CREATE (p:Person{id:uid,firstName:'Gabriel',lastName:'Smith'})
RETURN p AS person
Nguồn:http://www.neo4j.org/graphgist?8012859
Có thực sự không phải là cách đơn giản hơn và nếu không, tôi Có một lý do cụ thể cho nó? Cách tiếp cận của tôi là chống mẫu trong bối cảnh của Neo4j?
Điều này không trả lời được câu hỏi. Tự động tăng id có thể được sử dụng để sắp xếp các đối tượng theo thứ tự sáng tạo, mà không thể được thực hiện với uuid's –
Phần nào của câu hỏi mà bình luận của bạn trả lời? –
Tôi tin rằng thêm dấu thời gian unix hoặc một số loại tiền tố ngày tháng vào chuỗi duy nhất ngẫu nhiên sẽ khắc phục sự cố sắp xếp. – Guy