モジュール: Mongoid::Contextual::Aggregable::Memory

次のドキュメントに含まれます。
メモリ
定義:
lib/mongoid/contextual/aggregate/memory.rb

Overview

メモリ内の値を集計するための動作を含みます。

インスタンス メソッドの概要を折りたたむ

インスタンス メソッドの詳細

#集計(フィールド) =ハッシュ

指定されたフィールドのすべての集計値を取得します。 Aggregable::Mongo とのインターフェースの整合性のために提供されます。

パラメーター:

  • フィールド ( string | Symbol )

    フィールド名。

次の値を返します。

  • ハッシュ

    集計値を含む ハッシュ 。 ドキュメントが存在しない場合、返されるハッシュには、 0の count, の合計と nil の max, min, avg が含まれます。



16
17
18
19
20
# ファイル 'lib/mongoid/contextual/aggregate/ 16 ' の検索行

デフォルト 集計(フィールド)
  %w[count 合計 avg min 最大].each_with_object({}) 行う |メソッド, ハッシュ|
    ハッシュ[メソッド] = 送信(メソッド, フィールド)
  end
end

# avg (フィールド) =数値

指定されたフィールドの平均値を取得します。

例:

単一のフィールドの平均を取得します。

aggregable.avg(:likes)

パラメーター:

  • フィールド シンボル

    平均するフィールド。

次の値を返します。

  • 数値

    平均。



30
31
32
33
34
35
36
# ファイル 'lib/mongoid/contextual/aggregate/ 30 ' の検索行

デフォルト avg(フィールド)
  合計 = count { |doc| !doc.送信(フィールド).nil? }
  return nil ただし、 合計 > 0

  合計 = 合計.to_f 場合 合計.is_a?(整数)
  合計(フィールド) / 合計
end

# max (field = nil) =数値 |ドキュメント

指定されたフィールドの最大値を取得します。ブロックが提供されている場合、 は Ruby の列挙APIに従って、フィールドの最大値を持つdocumentを返します。

例:

単一フィールドの最大値を取得します。

aggregable.max(:likes)

最大値を持つドキュメントを取得します。

aggregable.max do |a, b|
  a.likes <=> b.likes
end

パラメーター:

  • フィールド 記号 (デフォルトはnil

    フィールドを最大 個に設定します。

次の値を返します。

  • 数値 |ドキュメント

    最大値または最大値を持つドキュメント。



54
55
56
57
58
# ファイル 'lib/mongoid/contextual/aggregate/ 54 ' の検索行

デフォルト 最大(フィールド = nil)
  return スーパー() 場合 ブロック_指定

  aggregate_by(フィールド, :max)
end

#(フィールド = nil) =数値 |ドキュメント

指定されたフィールドの最小値を取得します。ブロックが提供されている場合、 は Ruby の列挙APIに従って、フィールドの最小値を持つdocumentを返します。

例:

単一のフィールドの分を取得します。

aggregable.min(:likes)

最小値を持つドキュメントを取得します。

aggregable.min do |a, b|
  a.likes <=> b.likes
end

パラメーター:

  • フィールド 記号 (デフォルトはnil

    最小値フィールド

次の値を返します。

  • 数値 |ドキュメント

    最小値または最小値を持つドキュメント。



76
77
78
79
80
# ファイル 'lib/mongoid/contextual/aggregate/ 76 ' の検索行

デフォルト min(フィールド = nil)
  return スーパー() 場合 ブロック_指定

  aggregate_by(フィールド, :min)
end

#sum (フィールド = nil) =数値

指定されたフィールドの合計値を取得します。ブロックが提供されている場合、 は Ruby の列挙APIに従って合計を返します。

例:

1 つの フィールドの合計を取得します。

aggregable.sum(:likes)

指定された ブロックの合計を取得します。

aggregable.sum(&:likes)

パラメーター:

  • フィールド シンボル | 数値 (デフォルトはnil

    合計するフィールド、またはブロックが指定された場合は合計の初期値。

次の値を返します。

  • 数値

    合計値。



95
96
97
98
99
# ファイル 'lib/mongoid/contextual/aggregate/ 95 ' の検索行

デフォルト 合計(フィールド = nil)
  return スーパー(フィールド || 0) 場合 ブロック_指定

  aggregate_by(フィールド, :sum) || 0
end