class MongoidOccurrences::Aggregations::OccursOn
Attributes
date_time[R]
options[R]
Public Class Methods
new(base_criteria, date_time, options = {})
click to toggle source
# File lib/mongoid_occurrences/aggregations/occurs_on.rb, line 6 def initialize(base_criteria, date_time, options = {}) @base_criteria = base_criteria @date_time = date_time @options = options end
Private Instance Methods
criteria()
click to toggle source
# File lib/mongoid_occurrences/aggregations/occurs_on.rb, line 14 def criteria base_criteria.occurs_on(date_time) end
pipeline()
click to toggle source
# File lib/mongoid_occurrences/aggregations/occurs_on.rb, line 18 def pipeline [ { '$addFields' => { '_daily_occurrences' => '$daily_occurrences' } }, { '$unwind' => { 'path' => '$_daily_occurrences' } }, { '$addFields' => { '_dtstart' => '$_daily_occurrences.ds', '_dtend' => '$_daily_occurrences.de' } }, { '$project' => { '_daily_occurrences' => 0 } }, { '$match' => Queries::OccursOn.criteria(base_criteria, date_time, dtstart_field: '_dtstart', dtend_field: '_dtend').selector }, { '$sort' => { sort_key => { asc: 1, desc: -1 }[sort_order] } } ] end