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

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

Overview

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

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

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

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

非推奨。

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

パラメーター:

  • フィールド ( string | Symbol )

    フィールド名。

次の値を返します。

  • ハッシュ

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



19
20
21
22
23
# ファイル 'lib/mongoid/contextual/aggregate/ 19 ' の検索行

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

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

非推奨。

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

例:

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

aggregable.avg(:likes)

パラメーター:

  • フィールド シンボル

    平均するフィールド。

次の値を返します。

  • 数値

    平均。



35
36
37
38
39
40
41
# ファイル 'lib/mongoid/contextual/aggregate/ 35 ' の検索行

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

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

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

非推奨。

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

例:

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

aggregable.max(:likes)

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

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

パラメーター:

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

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

次の値を返します。

  • 数値 |ドキュメント

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



61
62
63
64
65
# ファイル 'lib/mongoid/contextual/aggregate/ 61 ' の検索行

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

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

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

非推奨。

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

例:

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

aggregable.min(:likes)

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

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

パラメーター:

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

    最小値フィールド

次の値を返します。

  • 数値 |ドキュメント

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



85
86
87
88
89
# ファイル 'lib/mongoid/contextual/aggregate/ 85 ' の検索行

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

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

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

非推奨。

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

例:

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

aggregable.sum(:likes)

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

aggregable.sum(&:likes)

パラメーター:

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

    合計するフィールド。

次の値を返します。

  • 数値

    合計値。



105
106
107
108
109
# ファイル 'lib/mongoid/contextual/aggregate/ 105 ' の検索行

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

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