模块:Mongoid::Contextual::Aggregable::Memory
- 包含在:
- 内存
- 定义于:
- lib/mongoid/contextual/aggregable/memory.rb
Overview
包含聚合内存中的值的行为。
实例方法摘要折叠
-
#aggregates (field) ⇒ 哈希
获取所提供字段的所有聚合值。
-
# avg (field) ⇒ 数值
获取所提供字段的平均值。
-
# max (字段 = nil) ⇒ 数值 |文档
获取所提供字段的最大值。
-
# min (字段 = nil) ⇒ 数值 |文档
获取所提供字段的最小值。
-
#sum (字段 = nil) ⇒ 数值
获取所提供字段的总和值。
实例方法详细信息
#aggregates (字段) ⇒哈希
获取所提供字段的所有聚合值。 用于实现与 Aggregable::Mongo 的接口一致性。
18 19 20 21 22 |
# File 'lib/mongoid/contextual/aggregable/memory.rb', line 18 def 聚合(字段) %w(数数 总和 avg min Max).each_with_object({}) do |方法, 哈希| 哈希[方法] = 发送(方法, 字段) end end |
# avg (field) ⇒数值
获取所提供字段的平均值。
32 33 34 35 36 37 38 |
# File 'lib/mongoid/contextual/aggregable/memory.rb', line 32 def avg(字段) 总计 = 数数 { |doc| !doc.发送(字段).nil? } return nil 除非 总计 > 0 总计 = 总计.to_f if 总计.is_a?(整型) 总和(字段) / 总计 end |
# max (field = nil) ⇒数值 |文档
获取所提供字段的最大值。 如果提供了区块,则根据 Ruby 的可枚举API ,返回具有该字段最大值的文档。
56 57 58 59 60 |
# File 'lib/mongoid/contextual/aggregable/memory.rb', line 56 def Max(字段 = nil) return 超() if block_given? aggregate_by(字段, :max) end |
# min (字段 = nil) ⇒数值 |文档
获取所提供字段的最小值。 如果提供了一个区块,则根据 Ruby 的可枚举 API,返回具有该字段的最小值的文档。
78 79 80 81 82 |
# File 'lib/mongoid/contextual/aggregable/memory.rb', line 78 def min(字段 = nil) return 超() if block_given? aggregate_by(字段, :min) end |
#sum (field = nil) ⇒数值
获取所提供字段的总和值。 如果提供了区块,则会根据 Ruby 的可枚举API返回总和。
97 98 99 100 101 |
# File 'lib/mongoid/contextual/aggregable/memory.rb', line 97 def 总和(字段 = nil) return 超(字段 || 0) if block_given? aggregate_by(字段, :sum) || 0 end |