class MongoQL::Stage::Match
Attributes
conditions[RW]
ctx[RW]
field_filters[RW]
Public Class Methods
new(ctx, *conds, **field_filters)
click to toggle source
# File lib/mongo_ql/stage/match.rb, line 7 def initialize(ctx, *conds, **field_filters) @ctx = ctx conds.each do |c| raise ArgumentError, "#{c.inspect} is not a valid MongoQL::Expression" unless c.is_a?(MongoQL::Expression) end @conditions = conds @field_filters = field_filters end
Public Instance Methods
to_ast()
click to toggle source
# File lib/mongo_ql/stage/match.rb, line 16 def to_ast conds = {} if compose_conditions conds["$expr"] = compose_conditions end ast = { "$match" => conds.merge(field_filters) } MongoQL::Utils.deep_transform_values(ast, &MongoQL::EXPRESSION_TO_AST_MAPPER) end
Private Instance Methods
compose_conditions()
click to toggle source
# File lib/mongo_ql/stage/match.rb, line 26 def compose_conditions if conditions.size > 1 { "$and" => conditions } elsif conditions.size == 1 conditions[0] else nil end end