Module: Daodalus::DSL::Matchers

Included in:
Aggregation::Match, Where
Defined in:
lib/daodalus/dsl/matchers.rb

Instance Method Summary collapse

Instance Method Details

#all(*values) ⇒ Object



44
45
46
# File 'lib/daodalus/dsl/matchers.rb', line 44

def all *values
  add_clause '$all' => values
end

#any(*clauses) ⇒ Object Also known as: or



70
71
72
# File 'lib/daodalus/dsl/matchers.rb', line 70

def any *clauses
  add_logical_clause '$or' => clauses.map(&:to_query)
end

#does_not_exist(*values) ⇒ Object



56
57
58
# File 'lib/daodalus/dsl/matchers.rb', line 56

def does_not_exist *values
  exists false
end

#elem_match(clause) ⇒ Object



80
81
82
# File 'lib/daodalus/dsl/matchers.rb', line 80

def elem_match clause
  add_clause '$elemMatch' => clause.to_query
end

#eq(value) ⇒ Object Also known as: equals



5
6
7
# File 'lib/daodalus/dsl/matchers.rb', line 5

def eq value
  add_clause value
end

#exists(value = true) ⇒ Object



52
53
54
# File 'lib/daodalus/dsl/matchers.rb', line 52

def exists value=true
  add_clause '$exists' => value
end

#gt(value) ⇒ Object Also known as: greater_than



20
21
22
# File 'lib/daodalus/dsl/matchers.rb', line 20

def gt value
  add_clause '$gt' => value
end

#gte(value) ⇒ Object Also known as: greater_than_or_equal



30
31
32
# File 'lib/daodalus/dsl/matchers.rb', line 30

def gte value
  add_clause '$gte' => value
end

#in(*values) ⇒ Object



35
36
37
# File 'lib/daodalus/dsl/matchers.rb', line 35

def in *values
  add_clause '$in' => values
end

#lt(value) ⇒ Object Also known as: less_than



15
16
17
# File 'lib/daodalus/dsl/matchers.rb', line 15

def lt value
  add_clause '$lt' => value
end

#lte(value) ⇒ Object Also known as: less_than_or_equal



25
26
27
# File 'lib/daodalus/dsl/matchers.rb', line 25

def lte value
  add_clause '$lte' => value
end

#ne(value) ⇒ Object Also known as: not_equal



10
11
12
# File 'lib/daodalus/dsl/matchers.rb', line 10

def ne value
  add_clause '$ne' => value
end

#nin(*values) ⇒ Object Also known as: not_in



39
40
41
# File 'lib/daodalus/dsl/matchers.rb', line 39

def nin *values
  add_clause '$nin' => values
end

#none(*clauses) ⇒ Object Also known as: nor



75
76
77
# File 'lib/daodalus/dsl/matchers.rb', line 75

def none *clauses
  add_logical_clause '$nor' => clauses.map(&:to_query)
end

#notObject



60
61
62
63
64
65
66
67
68
# File 'lib/daodalus/dsl/matchers.rb', line 60

def not
  define_singleton_method :add_clause do |clause|
    add_logical_clause field.to_s => { '$not' => clause }
  end
  define_singleton_method :eq do |value|
    add_logical_clause field.to_s => { '$ne' => value}
  end
  self
end

#size(value) ⇒ Object



48
49
50
# File 'lib/daodalus/dsl/matchers.rb', line 48

def size value
  add_clause '$size' => value
end