Giter VIP home page Giter VIP logo

es-odm's Introduction

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

es-odm's People

Contributors

haze-mobicow avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.