Node.js library for mapping mongo-style query objects to SQL queries.
Перейти к файлу
Artem Zhukov b8679fd483 examples fix 2014-08-07 11:30:11 +04:00
docs dialects system added, some query types added, documentation in progress 2014-08-06 19:06:23 +04:00
lib create placeholders only for strings 2014-08-07 11:24:09 +04:00
tests create placeholders only for strings 2014-08-07 11:24:09 +04:00
.gitignore added base functionality, some tests 2013-12-12 18:34:00 +04:00
.jshintrc dialects system added, some query types added, documentation in progress 2014-08-06 19:06:23 +04:00
.npmignore added base functionality, some tests 2013-12-12 18:34:00 +04:00
LICENSE dialects system added, some query types added, documentation in progress 2014-08-06 19:06:23 +04:00
README.md examples fix 2014-08-07 11:30:11 +04:00
package.json dialects system added, some query types added, documentation in progress 2014-08-06 19:06:23 +04:00

README.md

JSON-SQL

Library for mapping mongo-style query objects to SQL queries.

Quick Start

Install it with NPM or add it to your package.json:

$ npm install json-sql

Then:

var jsonSql = require('json-sql');

var sql = jsonSql.build({
	type: 'select',
	table: 'users',
	fields: ['name', 'age'],
	condition: {name: 'Max', id: 6}
});

sql.query
// sql string:
// select name, age from users where name = p0 && id = 6;

sql.values
// hash of values:
// { p0: 'Max' }

Documentation

Documentation is available here.

Examples

Select with join:

var sql = jsonSql.build({
	type: 'select',
	table: 'users',
	join: {
		documents: {
			on: {'user.id': 'documents.userId'}
		}
	}
});

sql.query
// select * from users join documents on user.id = documents.userId;

sql.values
// {}

Insert:

var sql = jsonSql.build({
	type: 'insert',
	table: 'users',
	values: {
		name: 'John',
		lastname: 'Snow',
		age: 24,
		gender: 'male'
	}
});

sql.query
// insert into users (name, lastname, age, gender) values (p0, p1, 24, p2);

sql.values
// { p0: 'John', p1: 'Snow', p2: 'male' }

Update:

var sql = jsonSql.build({
	type: 'update',
	table: 'users',
	condition: {
		id: 5
	},
	modifier: {
		role: 'admin'
		age: 33
	}
});

sql.query
// update users set role = p0, age = 33 where id = 5;

sql.values
// { p0: 'admin' }

Remove:

var sql = jsonSql.build({
	type: 'remove',
	table: 'users',
	condition: {
		id: 5
	}
});

sql.query
// delete from users where id = 5;

sql.values
// {}

For more examples, take a look at the ./tests directory.

Tests

Clone repository from github, cd into cloned dir and install dev dependencies

$ npm install

run tests

$ npm test

License

MIT