Neo4j-graafitietokantojen perusteet · Oppitunti

CRUD-toimintojen suorittaminen ohjelmallisesti

Suorittakaa sovelluksestanne Cypher-kyselyitä graafitietojen dynaamiseen luomiseen, lukemiseen, päivittämiseen ja poistamiseen.

Oppitunti 2/411 vaihetta

CRUD-toimintojen suorittaminen ohjelmallisesti on ilmainen Neo4j-graafitietokantojen perusteet-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Neo4j-graafitietokantojen perusteet-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Neo4j-graafitietokantojen perusteet-kurssilla on yhteensä 4 oppituntia.

CRUD-sovelluksesta käsin

Sovelluksia rakentaessasi sinun on usein käsiteltävä Neo4j-tietokantaasi ohjelmallisesti. Tämä tarkoittaa sellaisen koodin kirjoittamista, joka lähettää Cypher-kyselyitä tietojen luomista, lukemista, päivittämistä ja poistamista varten.

Näistä perustoiminnoista käytetään usein nimitystä CRUD:

  • Create: uusien tietojen (solmujen ja suhteiden) lisääminen.
  • Read: olemassa olevien tietojen hakeminen.
  • Update: olemassa olevien tietojen muokkaaminen.
  • Delete: tietojen poistaminen.

Yhdistäminen Neo4j:hin (kertaus)

Ennen CRUD-toimintojen suorittamista sovelluksesi on muodostettava yhteys Neo4j-tietokantaan. Kuten aiemmin opimme, virallinen Neo4j Python -ajuri tekee tästä helppoa.

Käytät GraphDatabase.driver-oliota yhteyksien hallintaan ja luot sen jälkeen session-istunnon kyselyiden suorittamista varten.

from neo4j import GraphDatabase

URI = "bolt://localhost:7687"
AUTH = ("neo4j", "password") # Use your credentials

def main():
    driver = GraphDatabase.driver(URI, auth=AUTH)
    with driver.session() as session:
        # Your Cypher queries will go here
        print("Connected to Neo4j!")
    driver.close()

if __name__ == "__main__":
    main()

Uusien solmujen luominen

Voitte lisätä graafiin uusia entiteettejä käyttämällä Cypherin CREATE-lausetta. Ohjelmallisesti välitätte Cypher-kyselymerkkijonon ja mahdolliset parametrit session.run()-metodille.

Parametrien (kuten $name ja $age) käyttäminen on ratkaisevan tärkeää tietoturvan kannalta, ja se estää Cypher-injektioita.

from neo4j import GraphDatabase

URI = "bolt://localhost:7687"
AUTH = ("neo4j", "password")

def main():
    driver = GraphDatabase.driver(URI, auth=AUTH)
    with driver.session() as session:
        query = (
            "CREATE (p:Person {name: $name, age: $age}) "
            "RETURN p.name AS name"
        )
        result = session.run(query, name="Charlie", age=25)
        print(f"Created: {result.single()['name']}")
    driver.close()

if __name__ == "__main__":
    main()

Suhteiden luominen

Suhteet yhdistävät solmuja, ja ne ovat graafirakenteiden kannalta olennaisia. Luodaksenne suhteen teidän on ensin tunnistettava yhdistettävät solmut, yleensä MATCH-lauseella, ja käytettävä sitten CREATE-lausetta.

Esimerkissä yhdistetään aiemmin luotu Charlie Aliceen, jonka olemassaolo varmistetaan tätä esimerkkiä varten.

from neo4j import GraphDatabase

URI = "bolt://localhost:7687"
AUTH = ("neo4j", "password")

def main():
    driver = GraphDatabase.driver(URI, auth=AUTH)
    with driver.session() as session:
        # Ensure Alice exists for the demo
        session.run("MERGE (:Person {name: 'Alice', age: 30})")

        query = (
            "MATCH (a:Person {name: $name1}), "
            "(b:Person {name: $name2}) "
            "CREATE (a)-[r:KNOWS]->(b) "
            "RETURN type(r) AS relType"
        )
        result = session.run(query, name1="Charlie", name2="Alice")
        print(f"Relationship created: {result.single()['relType']}")
    driver.close()

if __name__ == "__main__":
    main()

Solmujen lukeminen (MATCH ja RETURN)

Tietojen hakemiseen käytetään MATCH-lausetta kuvioiden etsimiseen ja RETURN-lausetta määrittämään, mitkä tiedot haluatte palauttaa. Voitte hakea kokonaisia solmuja tai yksittäisiä ominaisuuksia.

session.run()-metodi palauttaa tulosolion, jonka läpi voitte iteroida.

from neo4j import GraphDatabase

URI = "bolt://localhost:7687"
AUTH = ("neo4j", "password")

def main():
    driver = GraphDatabase.driver(URI, auth=AUTH)
    with driver.session() as session:
        query = "MATCH (p:Person) RETURN p.name AS name, p.age AS age"
        print("All People:")
        for record in session.run(query):
            print(f"- {record['name']} ({record['age']} years old)")
    driver.close()

if __name__ == "__main__":
    main()

Yhdistettyjen kuvioiden lukeminen

Graafitietokannat ovat erityisen hyviä yhdistettyjen tietojen kyselyissä. Voitte etsiä solmujen ja suhteiden monimutkaisia kuvioita ja palauttaa kyseisestä kuviosta tiettyjä osia.

Tämä esimerkki etsii henkilöt, jotka tuntevat Alicen, ja palauttaa heidän nimensä.

from neo4j import GraphDatabase

URI = "bolt://localhost:7687"
AUTH = ("neo4j", "password")

def main():
    driver = GraphDatabase.driver(URI, auth=AUTH)
    with driver.session() as session:
        query = (
            "MATCH (p:Person)-[:KNOWS]->(a:Person {name: $targetName}) "
            "RETURN p.name AS knowsAlice"
        )
        result = session.run(query, targetName="Alice")
        print("People who know Alice:")
        for record in result:
            print(f"- {record['knowsAlice']}")
    driver.close()

if __name__ == "__main__":
    main()

Solmujen ominaisuuksien päivittäminen

Olemassa olevien tietojen muokkaamiseen käytätte MATCH-lausetta solmujen tai suhteiden etsimiseen ja sitten SET-lausetta niiden ominaisuuksien muuttamiseen.

Tässä Charlien ikä päivitetään arvoon 26.

from neo4j import GraphDatabase

URI = "bolt://localhost:7687"
AUTH = ("neo4j", "password")

def main():
    driver = GraphDatabase.driver(URI, auth=AUTH)
    with driver.session() as session:
        query = (
            "MATCH (p:Person {name: $name}) "
            "SET p.age = $newAge "
            "RETURN p.name AS name, p.age AS newAge"
        )
        result = session.run(query, name="Charlie", newAge=26)
        record = result.single()
        print(f"Updated {record['name']}'s age to {record['newAge']}")
    driver.close()

if __name__ == "__main__":
    main()

Suhteiden ominaisuuksien päivittäminen

Solmujen tavoin myös suhteilla voi olla ominaisuuksia. Voitte päivittää niitä käyttämällä MATCH-lausetta suhteen etsimiseen ja SET-lausetta sen ominaisuuksien muokkaamiseen.

Lisätään KNOWS-suhteeseen since-ominaisuus Charlien ja Alicen välille.

from neo4j import GraphDatabase

URI = "bolt://localhost:7687"
AUTH = ("neo4j", "password")

def main():
    driver = GraphDatabase.driver(URI, auth=AUTH)
    with driver.session() as session:
        query = (
            "MATCH (p1:Person {name: $name1})" 
            "-[r:KNOWS]->" 
            "(p2:Person {name: $name2}) "
            "SET r.since = $year "
            "RETURN p1.name, p2.name, r.since AS sinceYear"
        )
        result = session.run(query, name1="Charlie", name2="Alice", year=2022)
        record = result.single()
        print(f"{record['p1.name']} knows {record['p2.name']} since {record['sinceYear']}")
    driver.close()

if __name__ == "__main__":
    main()

Graafitietojen poistaminen

Solmujen ja suhteiden poistamiseen käytätte DELETE-lausetta. Jos solmulla on suhteita, teidän on käytettävä DETACH DELETE-lausetta solmun ja sen suhteiden poistamiseen samanaikaisesti.

Pelkkä DELETE solmulle, jolla on suhteita, aiheuttaa virheen.

from neo4j import GraphDatabase

URI = "bolt://localhost:7687"
AUTH = ("neo4j", "password")

def main():
    driver = GraphDatabase.driver(URI, auth=AUTH)
    with driver.session() as session:
        query = (
            "MATCH (p:Person {name: $name}) "
            "DETACH DELETE p"
        )
        result = session.run(query, name="Charlie")
        print("Charlie and related data deleted.")
    driver.close()

if __name__ == "__main__":
    main()

Pikatarkistus: CRUD-operaatiot

Olette oppineet suorittamaan kaikki keskeiset CRUD-operaatiot. Testataan ymmärrystänne.

Kertaus: CRUD-ohjelmointi

Hienoa työtä! Tässä oppitunnissa opitte suorittamaan keskeiset CRUD-operaatiot Neo4j-graafitietokannassa suoraan Python-sovelluksesta:

  • Create: Lisätkää solmuja ja suhteita käyttämällä CREATE-lausetta.
  • Read: Hakekaa tietoja käyttämällä MATCH- ja RETURN-lauseita.
  • Update: Muokatkaa ominaisuuksia käyttämällä MATCH- ja SET-lauseita.
  • Delete: Poistakaa tietoja käyttämällä MATCH- ja DETACH DELETE-lauseita.

Näiden operaatioiden hallitseminen on keskeistä dynaamisten ja vuorovaikutteisten graafisovellusten rakentamisessa.

Aloita maksutta

Opi Neo4j-graafitietokantojen perusteet tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”CRUD-toimintojen suorittaminen ohjelmallisesti” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Neo4j-graafitietokantojen perusteet-oppimispolun 3 oppituntia, myös oppitunnin “CRUD-toimintojen suorittaminen ohjelmallisesti”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Neo4j-graafitietokantojen perusteet-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”CRUD-toimintojen suorittaminen ohjelmallisesti”?

Suorittakaa sovelluksestanne Cypher-kyselyitä graafitietojen dynaamiseen luomiseen, lukemiseen, päivittämiseen ja poistamiseen. Harjoittelet Neo4j-graafitietokantojen perusteet-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Neo4j-graafitietokantojen perusteet-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Neo4j-graafitietokantojen perusteet-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”CRUD-toimintojen suorittaminen ohjelmallisesti”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Neo4j-graafitietokantojen perusteet-oppitunnilla?

Kyllä. Jokainen Neo4j-graafitietokantojen perusteet-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Yhdistäminen Python-ohjaimella
  2. CRUD-toimintojen suorittaminen ohjelmallisesti
  3. Transaktioiden ja istuntojen käsittely
  4. Yhteyspoolit ja virheenkäsittely
← Takaisin: Neo4j-graafitietokantojen perusteet