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

次のドキュメントに含まれます。
mongo
定義:
lib/mongoid/contextual/aggregable/mongo.rb

Overview

mongo . で値を集計するための動作を含みます。

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

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

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

指定されたフィールドのすべての集計値を取得します。

例:

すべての集計値を取得します。

aggregable.aggregates(:likes)
# => {
#   "count" => 2.0,
#   "max" => 1000.0,
#   "min" => 500.0,
#   "sum" => 1500.0,
#   "avg" => 750.0
# }

パラメーター:

  • フィールド ( string | Symbol )

    フィールド名。

次の値を返します。

  • ハッシュ

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



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

デフォルト 集計(フィールド)
  結果 = コレクション.集計(パイプライン(フィールド), セッション: _session).to_a
  場合 結果.空の場合
    集計可能::Empty_RESULT.dup
  else
    結果.最初に
  end
end

# avg (フィールド) =浮動小数点

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

例:

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

aggregable.avg(:likes)

パラメーター:

  • フィールド シンボル

    平均するフィールド。

次の値を返します。

  • 浮動小数

    平均。



46
47
48
# ファイル 'lib/mongoid/contextual/aggregable/ 46 ' の検索行

デフォルト avg(フィールド)
  集計(フィールド)[" avg "]
end

# max (field = nil) =浮動小数、ドキュメント

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

例:

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

aggregable.max(:likes)

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

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

パラメーター:

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

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

次の値を返します。

  • 浮動小数点数 |ドキュメント

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



66
67
68
# ファイル 'lib/mongoid/contextual/aggregable/ 66 ' の検索行

デフォルト 最大(フィールド = nil)
  ブロック_指定 ? スーパー() : 集計(フィールド)[" max "]
end

#(フィールド = nil) =浮動小数点数 |ドキュメント

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

例:

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

aggregable.min(:likes)

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

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

パラメーター:

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

    最小値フィールド

次の値を返します。

  • 浮動小数点数 |ドキュメント

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



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

デフォルト min(フィールド = nil)
  ブロック_指定 ? スーパー() : 集計(フィールド)["min"]
end

#sum (フィールド = nil) =浮動小数点

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

例:

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

aggregable.sum(:likes)

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

aggregable.sum(&:likes)

パラメーター:

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

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

次の値を返します。

  • 浮動小数

    合計値。



103
104
105
106
107
# ファイル 'lib/mongoid/contextual/aggregable/ 103 ' の検索行

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

  集計(フィールド)[" sum "] || 0
end