0.1.2 • Published 10 months ago
expression-to-mql v0.1.2
expression-to-mql
A node package and CLI executable to parse arithmetic expressions and convert them to MongoDB aggregation expressions.
Features
The expression language allows the following:
- Field names (unquoted, or quoted with single or double quotes)
- Reference to nested fields using dot notation:
product.quantity - Literal numbers (integer or decimal)
- Operators:
+,-,*,/ - Brackets for grouping
(,) - Whitespace outside of quoted strings is irrelevant
Examples of valid expressions:
price * quantity'total amount' * 1.1(foo.temp - 32)*5/9
The expressions are converted to valid MongoDB Aggregation Expressions to be used in $project or $addFields stages.
CLI usage
While the intended use is programmatic via ES6 modules or CommonJS require, it also comes with a tiny executable so that it can easily be used at the command line. To use this tool from the command line, follow these steps:
npm install -g expression-to-mqlexpr2mql 'foo + 1'
Alternatively, you can check out the repository locally and run:
node ./bin/expr2mql.js 'foo + 1'API usage
The main function is exprToMQL(), which can be used as follows:
import exprToMQL from 'expression-to-mql';
const mql = exprToMQL('foo + 1');
console.log( JSON.stringify(mql) );This would output
{"$sum": ["$foo", {$literal: 1}]}