Skip to content

owenlilly/rxmongo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rxmongo

A simple wrapper around native mongo driver that uses RxJS.

Build Status

Installation

npm install rxmongo

Basic Usage

You must first connect before using any of the features of the library. Only one call to connect is necessary as each call will open a new connection.

Connect

const RxMongo = require('rxmongo').RxMongo

// connect only
RxMongo.connect('mongodb://localhost/mydb')
		.subscribe();

// connect and listen for activity events, 
// .subscribe(onNext, onError, onCompleted)
RxMongo.connect('mongodb://localhost/mydb')
		.subscribe(db => {
          // database connected
          console.log('connected!');
        }, err => {
        	// error connecting
        }, 
        () => {
        	// on connected or error connecting
        });

Find

const RxCollection = require('rxmongo').RxCollection;

const rxCollection = new RxCollection('mycollection');

rxCollection.find({})
            .first()
            .subscribe(doc => {
                expect(doc).to.exist;
                expect(doc).to.not.be.instanceOf(Array);
            }, err => {
                expect(err).to.not.exist;
            }, 
            () => done());

Mix, Match and Compose

You have the full power and flexibility of RxJS, see reactivex.io and RxJS for more details on the idea behind reactive extensions.

const RxCollection = require('rxmongo').RxCollection;
const rxCollection = new RxCollection('mycollection');

const rxFind = rxCollection.find({foo: 'bar'});
const findOne = rxFind.first();
const findAll = rxFind.toArray();
const findAllSorted = rxFind.sort({date: -1}).toArray();

// get first item from result
findOne.subscribe(result => console.log(result));

// get result as an array
findAll.subscribe(resutls => console.log(resutls), 
				 error => console.log(`Oops! ${error}`));

// find, sort and get result as an array 
findAllSorted.subscribe(resutls => console.log(resutls), 
			 			error => console.log(`Oops! ${error}`),
				 		 () => console.log('done!'));
            

License

Copyright 2016 Owen Lilly

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

About

A simple wrapper around native mongo driver that uses RxJS

Resources

License

Stars

Watchers

Forks

Packages

No packages published