Build an SQL selector (WHERE
) from a Mongo selector.
NOTE: Currently the produced SQL is mysql opinionated
npm install mongoloidsql
var builder = require('mongoloidsql');
console.log('SELECT * FROM `table` WHERE ' + builder({id: 1});
Output:
SELECT * FROM `table` WHERE `id` = 1
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
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))))
- https://docs.mongodb.org/manual/tutorial/query-documents/
- https://docs.mongodb.org/manual/reference/operator/query/
Release script / publication