queryfu

0.2.4 • Public • Published

queryfu

An intermediate query language for ninjas. Write your query once. Use it in any system.

Usage

There are four pretty similar ways to use queryfu:

queryfu(path, value)

path                String of attribute with optional dot syntax (e.g. 'name', 'person.name')
value               String, Number, Boolean, Date, or null that defines value being compared

queryfu(path, operator, value)

path                String of attribute with optional dot syntax (e.g. 'name', 'person.name')
value               String, Number, Boolean, Date, or null that defines value being compared
operator            (Default: '=') String representing operator:  <, <=, =, >=, >, !=

queryfu(pathValue)

pathValue           Object that maps path to value (age: 5)

queryfu(pathOperatorValue)

pathOperatorValue   Object that maps path to operator to value (age:'<':5)

Basics

queryfu(age, 4).toJSON()                            # => {age:4}
queryfu(age:4).toJSON()                             # => {age:4}
queryfu('age', '<=', 4).toJSON()                    # => {age:{'<=':4}}
queryfu(age:'<=':4).toJSON()                        # => {age:{'<=':4}}
queryfu(age:'<=':4).and(height:'>=':10).toJSON()    # => {age:{'<=':4}, height:{'>':10}}

Match

queryfu(age:'<=':4).match(name:'Evan', age:4)       # => true
queryfu(age:'<':4).match(name:'Evan', age:4)        # => false

Mongo

queryfu(age:'<':4).toMongo()                        # => {age:{'$lt':4}}
queryfu(age:'<':4).and(height:'>=':10).toMongo()    # => {age:{'$lt':4, '$gte':10}}

Readme

Keywords

none

Package Sidebar

Install

npm i queryfu

Weekly Downloads

11

Version

0.2.4

License

none

Last publish

Collaborators

  • evanmoran