monquery

mongo query language for humans inspired by Lucene

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
monquery
0.2.010 years ago10 years agoMinified + gzip package size for monquery in KB

Readme

monquery
Lucene-inspired string-based mongodb query language for humans (and ferrets).

Installation

$ npm install monquery

Why?

1. Nicer UX for the odd search / log filtering 2. Writing JSON queries is a PITA

Example

var compile = require('monquery');
var str = 'level:error OR type:upload';
var query = compile(str);

Querying

Fields

Specify field names with optional values:
level:error

yields
{ level: 'error' }

Booleans

Omit value to imply true:
failed

yields
{ failed: true }

Or specify a boolean-ish value (true, false, yes, no):
failed: no

yields
{ failed: false }

Operators

Currently supports AND / OR, which may be nested:
(level:error AND type:"upload failed") OR user.name.first:Tobi

yields
{ '$or':
   [ { '$and': [ { level: 'error' }, { type: 'upload failed' } ] },
     { 'user.name.first': 'Tobi' } ] }

Regular Expressions

Regexps may be used with the // syntax:
level:info AND name:/^To/

yields
{ '$and': [ { level: 'info' }, { name: /^To/ } ] }

Patterns

Wildcards may be used to generate regular expressions:
level:error AND hostname:api-*

yields
{ '$and': [ { level: 'error' }, { hostname: /^api-.*$/ } ] }
License
MIT