Liking cljdoc? Tell your friends :D

autonormal.core

A library for storing graph data in a Clojure map that automatically normalizes nested data and allows querying via EQL.

Create a new db with db. db values are normal maps with a tabular structure.

Add new ones using add.

Entities are identified by the first key with the name "id", e.g. :person/id. Adding data about the same entity will merge them together in order of addition. To replace an entity, dissoc it first.

NOTE: Collections like vectors, sets and lists should not mix entities and non-entities. Collections are recursively walked to find entities.

Query them w/ EQL using pull.

To get meta-information about what entities were added or queried, use the add-report and pull-report functions.

A library for storing graph data in a Clojure map that automatically
normalizes nested data and allows querying via EQL.

Create a new db with `db`. db values are normal maps with a tabular structure.

Add new ones using `add`.

Entities are identified by the first key with the name "id", e.g.
:person/id. Adding data about the same entity will merge them together in
order of addition. To replace an entity, `dissoc` it first.

NOTE: Collections like vectors, sets and lists should not mix entities and
non-entities. Collections are recursively walked to find entities.

Query them w/ EQL using `pull`.

To get meta-information about what entities were added or queried, use the
`add-report` and `pull-report` functions.
raw docstring

addclj/s

(add db data)
(add db data & more)

Takes a normalized map db, and some new data.

Returns a new map with the data normalized and merged into db.

Takes a normalized map `db`, and some new `data`.

Returns a new map with the data normalized and merged into `db`.
sourceraw docstring

add-reportclj/s

(add-report db data)

Takes a normalized map db, and some new data.

Returns a map containing keys: :db - the data normalized and merged into db. :entities - a set of entities found in data

Takes a normalized map `db`, and some new `data`.

Returns a map containing keys:
 :db - the data normalized and merged into `db`.
 :entities - a set of entities found in `data`
sourceraw docstring

dbclj/s

(db)
(db entities)

Takes an optional collection of entities.

Returns a new map with the entities normalized.

Takes an optional collection of `entities`.

Returns a new map with the `entities` normalized.
sourceraw docstring

deleteclj/s

(delete db lookup-ref)

Deletes an entity from the db, removing all references to it. A lookup-ref is a vector of [keyword id], e.g. [:person/id "a123"]

Deletes an entity from the db, removing all references to it. A lookup-ref is
a vector of [keyword id], e.g. [:person/id "a123"]
sourceraw docstring

not-foundclj/s

source

pullclj/s

(pull db query)

Executes an EQL query against a normalized map db and returns the result.

Executes an EQL query against a normalized map `db` and returns the result.
sourceraw docstring

pull-reportclj/s

(pull-report db query)

Executes an EQL query against a normalized map db. Returns a map with the following keys: :data - the result of the query :entities - a set of lookup refs that were visited during the query

Executes an EQL query against a normalized map `db`. Returns a map with the
following keys:
  :data - the result of the query
  :entities - a set of lookup refs that were visited during the query
sourceraw docstring

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close