npm.io
7.1.4 • Published 6 months ago

@travetto/model-query-language

Licence
MIT
Version
7.1.4
Deps
3
Size
17 kB
Vulns
0
Weekly
0
Stars
23

Data Model Query Language

Datastore query language.

Install: @travetto/model-query-language

npm install @travetto/model-query-language

# or

yarn add @travetto/model-query-language

This module provides a textual query language for the Data Model Querying interface. The language itself is fairly simple, boolean logic, with parenthetical support.The operators supported are:

Query Language

  • <, <= - Less than, and less than or equal to
  • >, >= - Greater than, and greater than or equal to
  • !=, == - Not equal to, and equal to
  • ~ - Matches regular expression, supports the i flag to trigger case insensitive searches
  • !, not - Negates a clause
  • in, not-in - Supports checking if a field is in a list of literal values
  • and, && - Intersection of clauses
  • or, || - Union of clauses

All sub fields are dot separated for access, e.g. user.address.city.A query language version of the previous query could look like:

Code: Query language with boolean checks and exists check

not (age < 35) and contact != null

A more complex query would look like:

Code: Query language with more complex needs

user.role in ['admin', 'root'] && (user.address.state == 'VA' || user.address.city == 'Springfield')
Regular Expression

When querying with regular expressions, patterns can be specified as 'strings' or as /patterns/. The latter allows for the case insensitive modifier: /pattern/i. Supporting the insensitive flag is up to the underlying model implementation.

Keywords