rxjsrel
RxJS based library for relational data processing.
Install
npm i rxjsrel
Usage
const RxJSRel = ;const Relations = RxJSRelRelations
Examples
Note!
You can get sets of data for examples here: book-store, big-stub-store.
Merge two tables by key
'use strict'; const Relations = Relations;const data = ; const rel = dataauthors databooks keys: left: 'name' right: 'author' transform: Relations ; rel ;
Merge two arrays and after - filter them
'use strict'; const Relations = Relations;const data = ; const rel = dataauthors databooks keys: left: 'name' right: 'author' { if rec1date rec1date = rec1date; return Relationsrec } ; rel ;
In this case you will get only one record (language === 'German'
). Also date
field will be transformed to Javascript date format.
Next example illustrates grouping of merged set of data by expected criteria
'use strict'; const Relations = Relations;const data = ; const rel = dataauthors databooks keys: left: 'name' right: 'author' transform: Relations ; rel ;
Merged set was grouped by author. Result of the grouping is count of books by related author.
{ author: 'Beverly Cleary', booksCount: 4 }
{ author: 'David Sedaris', booksCount: 3 }
{ author: 'Franz Kafka', booksCount: 3 }
{ author: 'Johann Wolfgang Von Goethe', booksCount: 8 }
Next example illustrates inner conditions. Inner conditions will apply before merging.
This technique is needed for big sets of data processing. We have a big data set, but next example will work quickly due to inner conditions. (ie filtering before merging).
'use strict'; const Relations = Relations;const data = ; let namesArr = `book 5` `book 7`;let authorArr = 'author #20' 'author #2000'; const rel = dataauthors databooks keys: left: 'name' right: 'author' transform: Relations ; rel ;