mon

mongoloidsql

Build an SQL selector (`WHERE`) from a Mongo selector.

Showing:

Popularity

Downloads/wk

1

GitHub Stars

2

Maintenance

Last Commit

2yrs ago

Contributors

2

Package

Dependencies

2

Size (min+gzip)

92.8KB

License

MIT

Type Definitions

Tree-Shakeable

No?

Categories

Readme

Build Status spotify

Mongo selector SQL builder (WIP)

Build an SQL selector (WHERE) from a Mongo selector.

NOTE: Currently the produced SQL is mysql opinionated

Install

npm install mongoloidsql

Usage

Example 1


var builder = require('mongoloidsql');

console.log('SELECT * FROM `table` WHERE ' + builder({id: 1});

Output:

SELECT * FROM `table` WHERE `id` = 1

Example 2


var builder = require('mongoloidsql');

console.log('SELECT * FROM `table` WHERE ' + builder({id: 1, 'test' : { '$gt': 1}});

Output:

SELECT * FROM `table` WHERE `id` = 1 AND `test` > 1

etc...

what what


var builder = require('mongoloidsql');

console.log('SELECT * FROM `table` WHERE ' + builder({
        'col1': 1,
        "$and": [
          {
            $or: [
              {'col2': 2},
              {'col3': 3}
            ]
          },
          {
            'col4': {
              '$eq': 4
            }
          },
          {
            'col5': {
              '$ne': 5
            }
          },
          {
            '$and': [
              {'col6': {'$gt': 6}},
              {'col7': {'$lte': 7}},
              {'$or': [
                {'col8': {'$gt': 6}},
                {'col9': {'$lte': 7}}
              ]}
            ]
          }
        ],
        '$or': [
          {
            $or: [
              {'col2': 2},
              {'col3': 3}
            ]
          },
          {
            'col4': {
              '$eq': 4
            }
          },
          {
            'col5': {
              '$ne': 5
            }
          },
          {
            '$and': [
              {'col6': {'$gt': 6}},
              {'col7': {'$lte': 7}},
              {'$or': [
                {'col8': {'$gt': 6}},
                {'col9': {'$lte': 7}}
              ]}
            ]
          }
        ],
      })
    );
  }));

Output:

SELECT * FROM `table` WHERE (`col1` = 1 AND ((`col2` = 2 OR `col3` = 3) AND `col4` = 4 AND `col5` != 5 AND (`col6` > 6 AND `col7` <= 7 AND (`col8` > 6 OR `col9` <= 7))) AND ((`col2` = 2 OR `col3` = 3) OR `col4` = 4 OR `col5` != 5 OR (`col6` > 6 AND `col7` <= 7 AND (`col8` > 6 OR `col9` <= 7))))

Reference

What is not (yet) implemented/supported

TODO

Release script / publication

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100