Aktualizowanie i usuwanie danych grafowych
Dowiedz się, jak modyfikować istniejące węzły i relacje za pomocą SET i REMOVE oraz bezpiecznie usuwać dane za pomocą DELETE i DETACH DELETE.
Aktualizowanie i usuwanie danych grafowych to bezpłatna lekcja Neo4j Graph Database Fundamentals na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Neo4j Graph Database Fundamentals, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Neo4j Graph Database Fundamentals zawiera 4 lekcji w sumie.
Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.
Modifying Your Graph Data
In this lesson, you'll learn how to update and delete existing nodes and relationships in your Neo4j graph using Cypher. Modifying data is crucial for keeping your graph accurate and up-to-date.
We'll cover the essential clauses: SET for changing properties, REMOVE for taking properties or labels away, and DELETE / DETACH DELETE for removing graph elements entirely.
Update Node Properties with SET
The SET clause is used to modify existing properties on nodes or relationships, or to add new ones. Let's start by updating a node's property.
This example first creates a 'Person' node, then updates their age.
CREATE (p:Person {name: 'Alice', age: 30})
RETURN p
MATCH (p:Person {name: 'Alice'})
SET p.age = 31
RETURN p.name, p.ageUpdate Relationship Properties
Just like nodes, relationships can also have properties. You can use SET to update these properties too. First, we create a relationship, then we update one of its properties.
CREATE (p1:Person {name: 'Bob'})-[:KNOWS {since: 2019}]->(p2:Person {name: 'Charlie'})
RETURN p1, p2
MATCH (p1:Person {name: 'Bob'})-[r:KNOWS]->(p2:Person {name: 'Charlie'})
SET r.since = 2020, r.status = 'Good Friends'
RETURN r.since, r.statusAdd New Properties with SET
If you use SET with a property name that doesn't exist on a node or relationship, Cypher will simply add that new property. This is a handy way to extend your data model on the fly.
MATCH (p:Person {name: 'Alice'})
SET p.city = 'New York', p.occupation = 'Engineer'
RETURN p.name, p.city, p.occupationRemove Properties with REMOVE
Sometimes you need to get rid of a property entirely. The REMOVE clause is designed for this. It can delete one or more properties from a node or a relationship.
Remember, REMOVE is for properties and labels, not for deleting entire nodes or relationships.
MATCH (p:Person {name: 'Alice'})
REMOVE p.occupation
RETURN p.name, p.age, p.city, p.occupationRemove Node Labels
The REMOVE clause isn't just for properties; you can also use it to remove labels from a node. This can change the node's type or classification within your graph.
After removing the 'Person' label, the node still exists but is now just a generic node without that specific type.
MATCH (p:Person {name: 'Alice'})
REMOVE p:Person
RETURN p, labels(p)Delete Relationships with DELETE
To remove a relationship, you use the DELETE clause. You must first MATCH the relationship you want to delete and then pass its variable to DELETE.
Note: DELETE can only remove relationships or nodes that have no relationships.
CREATE (a:User {id: 1})-[:LIKES]->(b:Product {id: 10})
RETURN a, b
MATCH (a:User {id: 1})-[r:LIKES]->(b:Product {id: 10})
DELETE r
RETURN a, bDelete Nodes with DETACH DELETE
What if you want to delete a node that has relationships connected to it? A simple DELETE won't work and will give an error.
The solution is DETACH DELETE. This powerful clause deletes the node and all its incoming and outgoing relationships in one go.
CREATE (u:User {name: 'David'})-[:FOLLOWS]->(o:User {name: 'Eve'})
RETURN u, o
MATCH (u:User {name: 'David'})
DETACH DELETE u
RETURN uDeletion Best Practices
Deleting data is permanent! Always exercise caution:
- Test first: Run your
MATCHclause with aRETURNto ensure you're selecting the correct elements before addingDELETEorDETACH DELETE. - Backup: For critical data, ensure you have backups.
- Transaction awareness: In applications, deletions are often part of larger transactions.
Deletion Challenge
You have a (:Movie {title: 'Inception'}) node that is connected to many (:Actor) nodes via [:ACTED_IN] relationships. You want to remove the 'Inception' movie node and all its connections.
Lesson Summary
Great job! You've mastered the core Cypher clauses for modifying and deleting graph data:
SET: Updates existing properties or adds new ones to nodes and relationships.REMOVE: Deletes specific properties or labels from nodes and relationships.DELETE: Removes relationships or nodes that have no connections.DETACH DELETE: The safest way to delete a node and all its associated relationships in one go.
Always be careful when deleting data, and verify your MATCH patterns first!
Często zadawane pytania
Czy lekcja „Aktualizowanie i usuwanie danych grafowych” jest bezpłatna?
Tak — pełny tekst „Aktualizowanie i usuwanie danych grafowych” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Neo4j Graph Database Fundamentals, przejdź na CoddyKit PRO. Kurs Neo4j Graph Database Fundamentals zawiera 4 lekcji w sumie.
Co nauczysz się w „Aktualizowanie i usuwanie danych grafowych”?
Dowiedz się, jak modyfikować istniejące węzły i relacje za pomocą SET i REMOVE oraz bezpiecznie usuwać dane za pomocą DELETE i DETACH DELETE. Ćwiczysz Neo4j Graph Database Fundamentals z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Neo4j Graph Database Fundamentals?
Nie wymagamy żadnego doświadczenia. Neo4j Graph Database Fundamentals w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Aktualizowanie i usuwanie danych grafowych”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Neo4j Graph Database Fundamentals?
Tak. Każda lekcja Neo4j Graph Database Fundamentals zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Filtrowanie i sortowanie wyników
- Agregowanie i projekcje
- Aktualizowanie i usuwanie danych grafowych
- Łączenie zapytań za pomocą WITH i UNION