Class: MongoParserRB::Query

Inherits:
Object
  • Object
show all
Defined in:
lib/mongo-parser-rb/query.rb,
lib/mongo-parser-rb/query/expression.rb

Defined Under Namespace

Classes: Expression

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.parse(raw_query) ⇒ MongoParserRB::Query

Parse a query, returning an initialized MongoParserRB::Query object.

Parameters:

  • raw_query (Hash)

    the hash to parse

Returns:



8
9
10
# File 'lib/mongo-parser-rb/query.rb', line 8

def self.parse(raw_query)
  new(raw_query).parse!
end

Instance Method Details

#matches_document?(document) ⇒ Boolean

Check if a document matches a query.

q = MongoParserRB::Query.parse(:x => {:$gt => 3})
q.matches_document?(:x => 4) => true
q.matches_document?(:x => 3) => false

Parameters:

  • document (Hash)

    The document to check

Returns:

  • (Boolean)

Raises:



32
33
34
35
36
37
# File 'lib/mongo-parser-rb/query.rb', line 32

def matches_document?(document)
  raise NotParsedError, "Query not parsed (run parse!)" if @expression_tree.nil?

  document = stringify_keys(document)
  @expression_tree.evaluate(document)
end