class MongoQL::StageContext
Attributes
injected_vars[RW]
pipeline[RW]
Public Class Methods
new()
click to toggle source
# File lib/mongo_ql/stage_context.rb, line 7 def initialize @pipeline = [] @injected_vars = {} end
Public Instance Methods
add_fields(*args)
click to toggle source
# File lib/mongo_ql/stage_context.rb, line 29 def add_fields(*args) pipeline << Stage::AddFields.new(self, *args) end
cond(conditon_expr, then_expr = nil, else_expr = nil, &block)
click to toggle source
# File lib/mongo_ql/stage_context.rb, line 75 def cond(conditon_expr, then_expr = nil, else_expr = nil, &block) Expression::Condition.new(conditon_expr, then_expr, else_expr, &block) end
Also aliased as: If
f(name)
click to toggle source
# File lib/mongo_ql/stage_context.rb, line 67 def f(name) Expression::FieldNode.new(name) end
first_of(*field_expressions)
click to toggle source
# File lib/mongo_ql/stage_context.rb, line 61 def first_of(*field_expressions) field_expressions.map do |expr| [expr, expr.first] end.to_h end
group(*args)
click to toggle source
# File lib/mongo_ql/stage_context.rb, line 43 def group(*args) pipeline << Stage::Group.new(self, *args) end
lookup(*args, &block)
click to toggle source
# File lib/mongo_ql/stage_context.rb, line 38 def lookup(*args, &block) pipeline << Stage::Lookup.new(self, *args, &block) end
Also aliased as: join
method_missing(m, *args, &block)
click to toggle source
# File lib/mongo_ql/stage_context.rb, line 57 def method_missing(m, *args, &block) Expression::FieldNode.new(m) end
project(*fields)
click to toggle source
# File lib/mongo_ql/stage_context.rb, line 33 def project(*fields) pipeline << Stage::Project.new(self, *fields) end
Also aliased as: select
scope(mongo_scope)
click to toggle source
# File lib/mongo_ql/stage_context.rb, line 12 def scope(mongo_scope) criteria = nil if mongo_scope.respond_to?(:all) criteria = mongo_scope.all.selector.transform_keys { |k| k.to_sym } end if mongo_scope.is_a?(Hash) criteria = mongo_scope.transform_keys { |k| k.to_sym } end where(**criteria) if criteria end
sort(*args)
click to toggle source
# File lib/mongo_ql/stage_context.rb, line 52 def sort(*args) pipeline << Stage::Sort.new(self, *args) end
Also aliased as: sort_by
to_ast()
click to toggle source
# File lib/mongo_ql/stage_context.rb, line 80 def to_ast pipeline.map(&:to_ast) end
unwind(*args)
click to toggle source
# File lib/mongo_ql/stage_context.rb, line 47 def unwind(*args) pipeline << Stage::Unwind.new(self, *args) end
Also aliased as: flatten
v(val)
click to toggle source
# File lib/mongo_ql/stage_context.rb, line 71 def v(val) Expression::ValueNode.new(val) end
where(*args)
click to toggle source
# File lib/mongo_ql/stage_context.rb, line 24 def where(*args) pipeline << Stage::Match.new(self, *args) end
Also aliased as: match