Skip to content
This repository has been archived by the owner on Nov 18, 2020. It is now read-only.
/ mongoloidsql Public archive

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

License

Notifications You must be signed in to change notification settings

AubreyHewes/mongoloidsql

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published