Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/2do2go/json-sql
Node.js library for mapping mongo-style query objects to SQL queries.
https://github.com/2do2go/json-sql
Last synced: 1 day ago
JSON representation
Node.js library for mapping mongo-style query objects to SQL queries.
- Host: GitHub
- URL: https://github.com/2do2go/json-sql
- Owner: 2do2go
- License: mit
- Created: 2013-12-12T08:07:46.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2021-05-13T04:49:10.000Z (over 3 years ago)
- Last Synced: 2024-12-21T13:40:36.730Z (18 days ago)
- Language: JavaScript
- Homepage:
- Size: 214 KB
- Stars: 201
- Watchers: 19
- Forks: 79
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# JSON-SQL
Node.js library for mapping mongo-style query objects to SQL queries.
This library **is not** a driver, it is only translator, you should use specific driver for your db (for example https://github.com/brianc/node-postgres for PostgreSQL) to execute result query.
## Quick Start
Install it with NPM or add it to your package.json:
``` bash
$ npm install json-sql
```Then:
``` js
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 = $p1 && id = 6;sql.values
// hash of values:
// { p1: 'Max' }
```## Documentation
Documentation is available at the [./docs directory](./docs).
## Examples
__Select with join:__
``` js
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:__
``` js
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 ($p1, $p2, 24, $p3);sql.values
// { p1: 'John', p2: 'Snow', p3: 'male' }
```__Update:__
``` js
var sql = jsonSql.build({
type: 'update',
table: 'users',
condition: {
id: 5
},
modifier: {
role: 'admin'
age: 33
}
});sql.query
// update users set role = $p1, age = 33 where id = 5;sql.values
// { p1: 'admin' }
```__Remove:__
``` js
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 [./docs directory](./docs) or [./tests directory](./tests).
## Tests
Clone repository from github, `cd` into cloned dir and install dev dependencies:
``` bash
$ npm install
```Then run tests with command:
``` bash
$ gulp test
```Or run tests coverage with command:
``` bash
$ gulp coverage
```## License
[MIT](./LICENSE)