level-caql
Adds CaQL query support to LevelUP.
Learn more here: Calypso Query Language Specification.
Install
npm install level-caql
Example
var levelup = ;var caql = ; var db = ;; var entries = name: 'Postini' founded_year: 1999 total_money_raised: '$0' name: 'Digg' founded_year: 2004 total_money_raised: '$45M' name: 'Airbnb' founded_year: 2007 total_money_raised: '$120M' name: 'TripIt' founded_year: 2006 total_money_raised: '$13.1M' name: 'Twitter' founded_year: 2006 total_money_raised: '$1.16B' name: 'Spotify' founded_year: 2006 total_money_raised: '$183M' name: 'Airbnb' founded_year: 2008 total_money_raised: '$776.4M' ; var query = 'select name, founded_year, total_money_raised as worth ' + 'where founded_year >= 1999 and name not like "%air%" ' + 'order by founded_year desc, name'; db; // Output://// [ { name: 'Spotify', founded_year: 2006, worth: '$183M' },// { name: 'TripIt', founded_year: 2006, worth: '$13.1M' },// { name: 'Twitter', founded_year: 2006, worth: '$1.16B' },// { name: 'Digg', founded_year: 2004, worth: '$45M' },// { name: 'Postini', founded_year: 1999, worth: '$0' } ]
Usage
The level-caql
module adds a function to the LevelUP database, db.find
.
db.find(query, [options], callback)
Executes a query over a LevelUP database. Entries must be stringified JSON (for now).
query
: A valid CaQL query string.
options
: Passed through to db.createReadStream(). If no valueEncoding
is set, this module defaults to json
.
callback
: A function that takes two parameters: err
and results
. The results
parameter is an array with objects found in the database.
License
MIT