1.0.3 • Published 9 years ago

jsdb v1.0.3

Weekly downloads
1
License
MIT
Repository
github
Last release
9 years ago

Javascript JSON Queries

Isn't a database, but a functional, fast and simple way to manipulate data in Javascript.

Methods:

  • find ( Object query )
  • filter ( Function )
  • join ( Array data , Object match, String putIn, Bool append )
  • left_join ( Array data, Object match, String putIn, Bool append )
  • right_join ( Array data, Object match, String putIn, Bool append )
  • reverse ( void )
  • group ( Array [prop], ... , Object options )
  • sort ( Object {prop: asc|desc, ...} )
  • slice ( Number start , Number end )
  • limit ( Number offset, Number count )
  • each ( Function )
  • size ( void )
  • get ( Number index )
  • all ( void )
  • apply ( Function )
  • scope ( Function )
  • add ( Array data )
  • clone ( void )
  • print ( ...properties )
  • debug ( String name, Function )

Operators

  • eq - Equal
  • not - Not equal
  • in - In array
  • nin - Not int array
  • gt - greater than
  • gte - greater than or equal
  • lt - lower than
  • lte - lower than or equal
  • between - between interval
  • match - regular expression

Examples

Considering:

var products = [
	{name: "notebook", cat: 1, price: 1799.00},
	{name: "computer", cat: 1, price: 978.50},
	{name: "js book" , cat: 2, price: 31.00},
	{name: "py book" , cat: 2, price: 29.00},
	{name: "game"    , cat: 3, price: 150.00},
	{name: "ipod"    , cat: 4, price: 190.00}
];

Find, sort and print

db(products)
	.find({
		price: {lte: 190},
		cat: {in: [2, 3]}
	})
	.sort({price: 'desc', name: 'asc'})
	.print('name', 'price');

// py book 29.00
// js book 31.00
// game 150.00

filter

db(products)
	.filter(function(product) {
		return product.price <= 1000;
 	})
 	...

join

var categories = [
	{id: 1, name: "computer"},
	{id: 2, name: "books"},
	{id: 3, name: "games"},
	{id: 4, name: "apple"},
	{id: 5, name: "car"}
];

db(products)
	.join(categories, ['cat', 'id'], 'category')
	...

scope

db(products)
	.scope(function() {
		if (externalVar) {
			this.sort({price: 'asc'});
		}
		
		if (anotherExternalVar) {
			this.group(['cat']);
		}
	})
	...

sort and reverse

db(products)
	.sort({price: 'asc'})
	.reverse()
	.print()
	.reverse()
	.print();

each

db(products)
	.each(function() {
		console.log(this.name);
		// creating new property
		this.lessthanthousand = this.price < 1000;
 	})
 	.find({
 		lessthanthousand: {not: false}
 	})
	...

Cases

DB.js was used to generate complex charts and statistics from Brazil President Elections 2014 manipulating data from hundreds of studies.

License

MIT.

Author

Alejandro Moraga moraga86@gmail.com

1.0.3

9 years ago

1.0.2

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago

0.0.2

11 years ago

0.0.1

11 years ago

0.0.0

11 years ago