Skip to content
clue edited this page Nov 10, 2014 · 4 revisions

Comparison

This specification has similarities with existing solutions. This page tries to highlight some of the differences. If you know a similar solution, feel free to add it here.

SQL

  • De-facto standard for most traditional RDBMS
  • Huge feature set, supports filtering, limiting, projecting etc.
  • Usually coupled to the database engine and not portable to another system

LINQ

  • Syntax usually exposes language features and/or uses anonymous functions.
  • Serialization is difficult or impossible
  • Usually not language-agnostic

NeDB

The NeDB queries look similar to this specification.

Some notable exceptions are:

  • Non-JSON support for $regex and arbitrary $where functions
  • Limited $not combinator, but no negation prefix, the !$is comparator is named $ne and !$in comparator is named $nin

TaffyDB

The TaffyDB queries look similar to this specification.

Some notable exceptions are:

  • Non-JSON support for $regex and arbitrary $where functions
  • No support for nested attributes?
  • Queries are always $anded, $oring is only supported at the root level, no support for deeper nesting?
  • Comparison operators use their native representation, $lt is named <

MongoDB

MongoDB is a full-featured database server. As such, it offers fundamentally more options than just querying its datastore.

The MongoDB query language is very similar to this specification and can even be used interchangeably for simpler queries.

Some notable exceptions are:

  • Non-JSON support for $regex and arbitrary $where functions
  • Support for aggregate functions
  • The $is comparator is named $eq
  • Has $not operator, but no prefix, the !$is comparator is named $neq and !$in comparator is named $nin

Lo-Dash

Lo-Dash (previously underscore) provides a where() function on its collections that resemble the simple folded matching of this spec.

LokiJS

LokiJS implements a mongo-style query language and hence shares most of its properties.

Clone this wiki locally