ReadonlynameThe name of the store (e.g. 'mongodb', 'redis', 'dynamodb')
ReadonlylibraryThe client library being used
Returns the underlying neo4j-driver Driver for anything not wrapped here.
Open a new Session. Sessions are lightweight and disposable - open
one per logical unit of work and close it when done (run(),
executeRead()/executeWrite(), and beginTransaction() all do this
for you; call this directly only if you need the raw Session, e.g.
for session.run()'s streaming subscribe() API).
Run a single parameterized Cypher statement as an auto-commit query,
on a session opened and closed for just this call. Always parameterize
user-supplied values ($name, not string concatenation) - the driver
sends params separately from the query text, the same protection
bind parameters give you against SQL injection.
Run work inside a managed read transaction. The driver automatically
retries work on transient errors (e.g. deadlocks, leader switches in
a cluster) - work may run more than once, so it must be idempotent
and side-effect-free outside of the transaction it's given.
Like executeRead(), but for a managed write transaction (defaultAccessMode: 'WRITE').
Begin an explicit transaction spanning multiple run() calls, on a
session held open until commit()/rollback(). Unlike
executeRead()/executeWrite(), this is never retried automatically
MATCH (n:Label) WHERE n.k1 = $k1 AND ... RETURN n [SKIP $skip] [LIMIT $limit]
where is an equality-only match on node properties (no operators,
ranges, or OR) - use run() directly for anything more expressive.
MATCH (n) WHERE elementId(n) = $elementId [DETACH] DELETE n
Without options.detach, deleting a node that still has relationships
fails (Neo4j refuses to leave dangling relationships) - the underlying
error surfaces as a DatabaseError. Returns whether a node was
actually deleted (based on the query's nodesDeleted counter).
MATCH (n:Label) WHERE ... RETURN count(n) AS count
MATCH (a), (b) WHERE elementId(a) = $fromElementId AND elementId(b) = $toElementId
CREATE (a)-[r:TYPE]->(b) SET r = $properties RETURN r
MATCH ()-[r]->() WHERE elementId(r) = $elementId RETURN r
MATCH (a)-[r:TYPE]->(b) WHERE r.k1 = $k1 AND ... RETURN r [SKIP $skip] [LIMIT $limit]
Omit type to match relationships of any type.
Optionaltype: stringMATCH (a)-[r]->(b) WHERE elementId(r) = $elementId DELETE r - returns whether a relationship was actually deleted.
Neo4jStorewraps aneo4j-driverDriverand exposes:run()) - the general escape hatch,session()),executeRead()/executeWrite()),beginTransaction()),createNode(),findNodes(),createRelationship(), etc) built on top ofrun()- these are thin Cypher generators, not a separate query engine, so anything they don't cover is onerun()call away.