Neo4j.Session (Neo4jEx v0.1.4)

View Source

Neo4j Session for executing queries and managing transactions.

A session is a container for a sequence of transactions. Sessions borrow connections from the driver's connection pool and should be closed when no longer needed.

Usage

# Within a driver session block
Neo4j.Driver.session(driver, fn session ->
  {:ok, result} = Neo4j.Session.run(session, "MATCH (n:Person) RETURN n.name")
  # Process result...
end)

# Manual session management
{:ok, session} = Neo4j.Driver.create_session(driver)
{:ok, result} = Neo4j.Session.run(session, "MATCH (n:Person) RETURN n.name")
Neo4j.Session.close(session)

Summary

Functions

Begins a new transaction in the session.

Closes the session and releases its connection.

Gets session information.

Executes a Cypher query in the session.

Functions

begin_transaction(session)

begin_transaction(session, opts)

Begins a new transaction in the session.

Parameters

  • session: Session map
  • opts: Transaction options (default: [])

Options

  • :mode - Transaction mode ("r" for read, "w" for write)
  • :timeout - Transaction timeout in milliseconds

Returns

  • {:ok, transaction} on success
  • {:error, reason} on failure

Examples

{:ok, tx} = Neo4j.Session.begin_transaction(session)
{:ok, tx} = Neo4j.Session.begin_transaction(session, mode: "w", timeout: 30_000)

close(session)

Closes the session and releases its connection.

Parameters

  • session: Session to close

Examples

Neo4j.Session.close(session)

info(session)

Gets session information.

Parameters

  • session: Session map

Returns

Session information map

run(session, query)

run(session, query, params)

run(session, query, params, opts)

Executes a Cypher query in the session.

Parameters

  • session: Session map
  • query: Cypher query string
  • params: Query parameters map (default: %{})
  • opts: Query options (default: [])

Options

  • :timeout - Query timeout in milliseconds

Returns

  • {:ok, results} on success where results is a list of records
  • {:error, reason} on failure

Examples

{:ok, results} = Neo4j.Session.run(session, "MATCH (n:Person) RETURN n.name")
{:ok, results} = Neo4j.Session.run(session, "CREATE (p:Person {name: $name})", %{name: "Alice"})