neo4j-io

    1.0.4 • Public • Published

    Neo4j API Wrapper

    NPM version build status Test coverage

    Yet another Neo4j REST API wrapper for io.js, which provides Promise api.

    Usage

    npm install neo4j-io --save
     
    var neo4j = require('neo4j-io')([url])

    API

    Cypher

    var cypher = 'MATCH (n:NODE) RETURN n LIMIT 1'
    neo4j
      .query(cypher)
      .then()
      .catch()
     
    // With params
    var cypher = 'MATCH (n:NODE) WHERE n.name={name} RETURN n'
    var params = { name: 'neo4j' }
    neo4j.query(cypher, params)

    Node

    create(node)

    Create a node with JSON data

    neo4j.Node.create({ name: 'name' })

    get(id)

    Get node with specify id

    neo4j.Node.get(1)

    update(id, prop, [value])

    When prop is a string, it will update the specify property, otherwise reset node with given json

    // Update name
    neo4j.Node.update(1, 'name', 'new name')
     
    // Reset node
    neo4j.Node.update(1, {age: 10})

    delete(id)

    Delete node

    neo4j.Node.delete(1)

    deleteProperties(id, [prop])

    Delete one or all properties

    neo4j.Node.deleteProperties(1, 'name')
    neo4j.Node.deleteProperties(1)

    Relationship

    create(from, to, type, [props])

    Create a relationship between two nodes with specify type

    neo4j.Relationship.create(1, 2, 'LIKES')
    neo4j.Relationship.create(1, 2, 'LIKES', {really: true})

    get(id)

    Get a relationship node

    getProperties(id, [prop])

    Get properties

    update(id, prop, [value])

    Update or reset properties

    delete(id)

    Delete a relationship

    all(nodeId)

    Get all relationships of the node

    incoming(nodeId)

    Get incoming relationships of the node

    outgoing(nodeId)

    Get outgoing relationships of the node

    Label

    craete(nodeId, label)

    Add label to node

    update(nodeId, labels)

    Update labels of the node

    neo4j.Label.update(1, 'NODE')
    neo4j.Label.update(1, ['NODE', 'BOOK'])

    get(nodeId)

    Get labels of the node

    delete(nodeId, label)

    nodes(label)

    Get all the nodes with label

    all()

    Get all the labels

    Index

    get(label)

    Get indexes for a label

    create(label, index)

    Create a index for a label

    neo4j.Index.create('label', 'index')

    delete|drop(label, index)

    Drop index

    Batch

    All the api above are available in batch operation, exec must be called when you want to send the requests

    var batch = neo4j.batch()
    // Create a node
    var batchId = batch.Node.create({name: 'batch'})
    // Add a label to node, use id or batch Id
    batch.Label.create({batch: batchId}, 'NODE')
    // Create a relationship
    batch.Relationship.create({batch: batchId}, 2, 'LIKE')
    // Call exec
    batch.exec().then()
     
    // Batch also support cypher
     
    var c1 = 'START n=node(1) RETURN n'
    var c2 = 'MATCH (n:NODE) WHERE n.name={name} RETURN n'
     
    batch.query(c1)
    batch.query(c2, {name: 'test'})
    batch.exec().then()

    LICENSE

    MIT

    Install

    npm i neo4j-io

    DownloadsWeekly Downloads

    1

    Version

    1.0.4

    License

    MIT

    Last publish

    Collaborators

    • haio