An ElasticSearch ODM for Node.js. Use ElasticSearch as your primary document store...Elastic DB!
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
test
.coveralls.yml
.gitignore
.npmignore
.travis.yml
API.md
LICENSE
Makefile
README.md
Vagrantfile
docker-compose.yml
index.js
package.json

README.md

Rebound-ODM

npm Build Status Coverage Status David GitHub license

Introduction

Note: This is a fork from boatmeme/Rebound-js and is in heavy development

An ElasticSearch ODM for Node.js. Use ElasticSearch as your primary document store...Elastic connection!

Goals

To provide an Object->Document Mapper (ODM) for Elasticsearch, enabling quick, OOTB development of CRUD apps backed by Elasticsearch as a document store, while still providing easy access to advanced configuration and search features.

We're just beginning, but I'm incorporating many of the lessons learned from several years of using Elasticsearch as a primary data store, running the gamut of use cases from schema-less "shove-it-and-forget-it" scenarios to highly specialized search analyzers and aggregations across multiple indices and document types.

Installation

npm install reboundodm

Examples:

First you must establish your connection to your es node

var Rebound = require('reboundodm');
Rebound.connect('localhost:9200');

To create a Rebound schema:

var UserSchema = Rebound.Schema({
    _id: { type: 'string', default: uuid() },
    name: String,
    description: { type: 'string', analyzer: 'not_analyzed' }
  });

To create a Rebound Model:

var User = Rebound.modelIndex('ExampleIndex', 'Users', UserSchema);

Once you have a Rebound model you can now do CRUD opterations and Search query on the models index:

User.create({
    name: 'Alex',
    description: 'Young male with a future'
  })
  .then(function (result) {
      // returns a bluebird promise
    });

User.searchBody({
    query: {
      match: {
        name: 'Alex'
      }
    }
  })
  .then(function (result) {
      // returns a bluebird promise
    });

To find more about the model api check the API docs.

Roadmap

Check out the roadmap.

API

Check out the API. More examples are coming soon for right now these docs are basic.

Testing

Tests are written as integrated, behavioral tests of the exposed API. Included Vagrantfile to stand-up a live Elasticsearch instance.

  • vagrant up or have an instance of Elasticsearch running locally
  • npm test

Releases

  • 0.1.0 - Inital release