모듈: Mongoid::Matcher::ElemMatch Private

다음에 정의됨:
lib/mongoid/matcher/elem_match.rb

개요

이 모듈은 비공개 API의 일부입니다. 이 모듈은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

$elemMatch 표현식 에 대한 인메모리 매처입니다.

클래스 메서드 요약 접기

클래스 메서드 세부 정보

.일치합니까?(존재, 값, 조건) ⇒ true | false, 부울

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

값이 $elemMatch 표현식 을 충족하는지 여부를 반환합니다.

매개변수:

  • 이 존재합니다 (true | false)

    사용되지 않습니다.

  • value (Object | Array<Object>)

    확인할 값입니다.

  • expr (해시)

    $elemMatch 조건 술어입니다.

반환합니다:

  • (true | false)

    값이 일치하는지 여부입니다.

  • (부울)


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
46
47
48
# 파일 'lib/mongoid/matcher/elem_match.rb', 줄 21

module_function def 일치합니까?(이 존재합니다, value, 조건)
  하지 않는 한 해시 === 조건
    올리다 오류::InvalidQuery, "$elemMatch 에는 해시 피연산자가 필요합니다: #{Errors::InvalidQuery.truncate_expr(condition)}"
  end
  만약 배열 === value && !value.비어 있나요?
    value.어떤? do |v|
      ElemMatchExpression.일치합니까?(v, 조건)
    end
  other
    # 시도하지 않더라도 조건이 유효한지 확인합니다.
    # 일치시킵니다.
    조건. do |k, v|
      k = k.to_s
      만약 k.start_with?('$')
        시작
          ExpressionOperator.get(k)
        구출 몽고이드::오류::InvalidExpressionOperator
          시작
            FieldOperator.get(k)
          구출 몽고이드::오류::InvalidFieldOperator => exc
            올리다 몽고이드::오류::InvalidElemMatchOperator.신규(exc.연산자)
          end
        end
      end
    end
    거짓
  end
end