0.2.0 • Published 9 years ago

grafite v0.2.0

Weekly downloads
1
License
ISC
Repository
github
Last release
9 years ago

Grafite

Graph-like database interface using Javascript, MySQL, and Mongo.

  • Basic Goals
  • Library Objects
    • grafite
    • grafiteQuery
    • nodeObject
    • queryObject
    • orderObject
  • Manipulate Nodes
  • Node Relationships
  • Querying and Traversing Nodes
  • nodeObject Methods
  1. Create and manipulate objects
    • Create
    • Update
    • Delete
  2. Relate objects to each other
    • Have multiple relationships
    • Remove object relationships
  3. Query for objects
    • By object property
    • By relationship
  4. Traverse from object to object
    • By object property
    • By relationship

The main interface for the library. Read the rest of this documentation for more information.

Returned by functions that query and traverse nodes:

  • grafite.find
  • grafiteQuery.traverse
  • grafiteQuery.sort
  • nodeObject.traverse

Has two available methods:

  • traverse
  • sort

Results from functions that create, manipulate, and find nodes:

  • grafite.create
  • grafite.get
  • grafite.update
  • grafite.find
  • grafiteQuery.traverse
  • grafiteQuery.sort
  • nodeObject.traverse

Available methods:

  • traverse
  • update
  • delete
  • relateTo
  • relatedTo
  • unrelateFrom
  • severFrom

An array with 3 elements used to query and traverse for nodes.

[
    upstream,
    query object,
    downstream
]
  • upstream a string or an array of strings that define the upstream relationships to look for
  • query object and object in the style of MongoDB find object
  • downstream a string or an array of strings that define the downstream relationships to look for

Use null call be used for any 3 of these elements, indicating not to query on that field.

A plain object with a key-value pairs. Where the key is the field to sort on, and the value is either 1 for ascending order (defualt), or 0 or -1 for descending order.

Create a node.

  • data an object
  • callback(error, nodeObject)

Get a node.

  • node nodeID or nodeObject
  • callback(error, nodeObject)

Update a node's data.

  • node nodeID or nodeObject
  • data an object, parameters with undefined values are removed
  • callback(error, nodeObject)

Delete a node and node's relationships.

  • node nodeID or nodeObject
  • callback(error)

Relate upstream node to downstream node with one or more relationships.

  • upstreamNode nodeID or nodeObject
  • relationship single relationship or an array an relationships
  • downstreamNode nodeID or nodeObject
  • callback(error)

Remove one or more relationships from upstream node to downstream node.

  • upstreamNode nodeID or nodeObject
  • relationship single relationship or an array of relationships
  • downstreamNode nodeID or nodeObject
  • callback(error)

Remove all relationships from upstream node to downstream node.

  • upstreamNode nodeID or nodeObject
  • downstreamNode nodeID or nodeObject
  • callback(error)

Remove all relationships between both nodes.

  • node nodeID or nodeObject
  • node nodeID or nodeObject
  • callback(error)

Check if upstream node is related to downstream node, stopping at threshold number of jumps.

  • upstreamNode nodeID or nodeObject
  • downstreamNode nodeID or nodeObject
  • threshold optional, defaults to 5, maximum number of steps to check
  • callback(error, related)

Check if upstream node is immediately related to downstream node by one or more relationships.

  • upstreamNode nodeID or nodeObject
  • relationship single relationship or an array of relationships
  • downstreamNode nodeID or nodeObject
  • callback(error, related)

Find a node with given queries. Additional queries are OR conditions. Returns a grafiteQuery object.

  • query queryObject, one or more can be used
  • callback(error, nodes) optional, if not provided query will not be executed

Traverse to related nodes from a query. Must be used as a chained function from grafite.find or grafiteQuery.traverse. Additional queries are OR conditions.

  • query queryObject, one or more can be used
  • callback(error, nodes) optional, if not provided query will not be executed

Sort the results of a query. Callback is required

  • order orderObject, one or more can be used
  • callback(error, nodes) required, must be provided

Most of these are self explanatory. Look at their corresponding grafite methods to understand what they do.