Skip to content

andreasronge/neoxir

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neoxir

Build Status

An Elixir driver for the Neo4j Graph Database, see www.neo4j.org

Create a session

{:ok, session} = Neoxir.create_session("http://localhost:7474") 

Or

session = Neoxir.create_session! # http://localhost:7474 is default

Transactions

All cypher operations are executed in transactions.

Commit a single cypher query

{:ok, response} = Neoxir.commit(session, statement: "CREATE (n) RETURN ID(n)") 

# or, which might raise an exception:
response = Neoxir.commit!(session, statement: "CREATE (n) RETURN ID(n)") 

Commit multiple cypher queries:

{:ok, response} = Neoxir.commit(session, [statement: "CREATE (n) RETURN ID(n)", statement: "..."]) 

Reuse transaction

TODO

transaction = Neoxir.begin_tx!(session, \\ [statements: "..."])
response = Neoxir.execute!(transaction, statement: "CREATE (n) RETURN ID(n)")
Neoxir.commit!(transaction, \\ [statements: "..."])

Cypher Response

Single statement

{:ok, response} = Neoxir.commit(session, statement: "MATCH (n) RETURN ID(n) as X LIMIT 3") 
# => [%{x: 0}, %{x: 1}, %{x: 2}]

REST response

{:ok, response} = commit(session, statement: "CREATE (n {name: 'andreas'}) RETURN n", resultDataContents: [ "REST" ])
# => [%{n: %{"all_relationships" => "http://localhost:7474/db/data/node/886/relationships/all",
#    "all_typed_relationships" => "http://localhost:7474/db/data/node/886/relationships/all/{-list|&|types}",
# ...

Multiple statements

{:ok, response} = Neoxir.commit(session, [statement: "MATCH (n) RETURN ID(n) as X LIMIT 3"]) 
# => [[%{x: 0}, %{x: 1}, %{x: 2}]]

About

An Elixir driver for the Neo4j Graph Database, see www.neo4j.org

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages