モジュール: Mongoid::Matcher::Expression Private

定義:
lib/mongoid/matcher/ Expression.rb

Overview

このモジュールはプライベート API の一部です。 このモジュールは将来削除または変更される可能性があるため、可能な限り使用しないでください。

メモリ内の特定のドキュメントが MSQL クエリ式と一致するかどうかを評価するために使用される基本単一のモジュール。

クラスメソッドの概要を折りたたむ

クラスメソッドの詳細

一致するかどうか(document,expr)詳細= true| falseブール値

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

ドキュメントがクエリ式を満たすかどうかを返します。

パラメーター:

  • ドキュメント Mongoid::Document

    ドキュメント。

  • expr ハッシュ

    式。

次の値を返します。

  • true | false

    ドキュメントが一致するかどうか。

  • ブール値


19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# ファイル 'lib/mongoid/matcher/ Expression.rb' は、 19行

MongoDB_function デフォルト 一致するかどうか(ドキュメント, expr)
  場合 expr.nil?
    発生 Errors::InvalidQuery, "式コンテキスト の nil 条件"
  end
  ただし、 ハッシュ === expr
    発生 Errors::InvalidQuery,  MQL クエリはハッシュとして提供する必要があります
  end
  expr.すべて? 行う |k, expr_v|
    k = k.to_s
    場合 k == " $comment "
      # 何もない
      return true
    end
    場合 k.start_with?('$')
      式演算子.得る(k).一致するかどうか(ドキュメント, expr_v)
    else
      values = マッチャー.insert_attribute(ドキュメント, k)
      場合 values.Length > 0
        values.any? 行う |v|
          FieldExpression.一致するかどうか(true, v, expr_v)
        end
      else
        FieldExpression.一致するかどうか(false, nil, expr_v)
      end
    end
  end
end