# blow-data-service

Observable data service for Blow.

### How to install

```
npm install blow-data-service
```

### Example

```typescript

import {Observable} from 'rxjs';
import {Query, DataService} from 'blow-data-service';

const settings = {
  default: {
    default: true,
    connector: 'memory'
  }
}

const data = [{label: 'red', rgb: '#ff0000'}, {label: 'green', rgb: '#00ff00'}, {label: 'blue', rgb: '#0000ff'}];

DataService
  .create(settings)
  .connect()
  .subscribe(dataService => {    
    const colorsCollection = dataService.collection('colors');
    const query = new Query();
    query.equal('label', 'red');
    
    Observable.from(data)
      .mergeMap(color => colorsCollection.save(color)) // save colors
      .last()
      .mergeMap(() => colorsCollection.delete(query)) // delete items via query
      .mergeMap(() => colorsCollection.find()) // find all items
      .subscribe(color => {
        console.log(color); // log items to console
      });    
  });
```

### Connectors

- Memory
- MongoDB

### Available methods

- count(query?: Query): Observable<number>
- delete(query?: Query): Observable<number>;
- deleteById(id: any): Observable<boolean>;
- find<T>(query?: Query): Observable<T>;
- get<T>(id: any): Observable<T>;
- save<T>(doc: Entity): Observable<T>;