Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

monquery

visionmedia523MIT0.2.0

mongo query language for humans inspired by Lucene

lucene, mongo, mongodb, query, language

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

changelog

0.2.0 / 2014-10-11

  • add operator whitespace support and clean more stuff up
  • clean up previous commit
  • Merge pull request #2 from DataGarage/master
  • add new feature: comparison selector
  • history

0.1.0 / 2014-02-10

  • add int / float support