모듈: Mongoid::Matcher::EqImpl Private
- 다음에 정의됨:
- lib/mongoid/matcher/eq_impl.rb
개요
이 모듈은 비공개 API의 일부입니다. 이 모듈은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이 모듈은 $eq 및 $eq가 수행하는 매칭을 수행해야 하는 기타 연산자(예: $eq의 결과를 무효화하는 $ne)가 사용합니다. $eq와 달리 이 모듈은 원래 연산자를 matches?
에 대한 추가 인수로 사용하여 처음 호출된 연산자를 반영하는 올바른 예외 메시지를 제공합니다.
클래스 메서드 요약 접기
-
.일치합니까?(exists, 값, 조건, original_operator) ⇒ true | false, 부울
비공개
값이 $eq (또는 이와 유사한) 표현식 을 충족하는지 여부를 반환합니다.
-
.time_eq?(time_a, time_b) ⇒ true | false, 부울
비공개
www.mongodb.com/ko-kr/docs/ruby-driver/upcoming/data-formats/bson/#time-instances 에 따라 > BSON (및 MongoDB)의 시간은 밀리초의 정밀도만 가질 수 있습니다.
-
.time_rounded_to_millis(시간) ⇒ true | false
비공개
시간 값을 가장 가까운 밀리초로 반올림합니다.
클래스 메서드 세부 정보
.일치합니까?(exists, 값, 조건, original_operator) ⇒ true | false, 부울
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
값이 $eq (또는 이와 유사한) 표현식 을 충족하는지 여부를 반환합니다.
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 49 50 51 52 53 54 |
# 파일 'lib/mongoid/matcher/eq_impl.rb', 줄 24 module_function def 일치합니까?(이 존재합니다, value, 조건, original_operator) case 조건 when 범위 # $ne는 $eq를 호출하므로 예외 메시지를 처리해야 합니다. # 두 연산자 모두. 올리다 오류::InvalidQuery, " 범위는' #{original_operator}' 에 대한 인수로지원되지 않습니다. =begin if value.is_a?(배열) value.any? { |elt| Condition.include?(elt) } other 조건.포함?(값) end =end other # Time 객체와 비교할 때는 밀리초 정밀도를 사용하여 비교합니다. 만약 value.Kind_of?(시간) && 조건.Kind_of?(시간) time_eq?(value, 조건) elsif value.is_a?(배열) && 조건.Kind_of?(시간) value.map do |v| 만약 v.Kind_of?(시간) time_rounded_to_millis(v) other v end end.포함?(time_rounded_to_millis(조건)) other value == 조건 || value.is_a?(배열) && value.포함?(조건) end end end |
.time_eq?(time_a, time_b) ⇒ true | false, 부울
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
www.mongodb.com/ko-kr/docs/ruby-driver/upcoming/data-formats/bson/#time-instances 에 따라 > BSON (및 MongoDB)의 시간은 밀리초의 정밀도만 가질 수 있습니다. Ruby Time 인스턴스가 BSON 또는 확장 JSON 으로 직렬화되면 시간은 가장 가까운 밀리초 단위로 내림차순입니다.
> 이 플로어링 때문에 부동 소수점 계산이 정확하지 않으면 예기치 않은 결과가 발생할 수 있으므로 애플리케이션은 정수 수학을 사용하여 모든 시간 계산을 수행할 것을 강력히 권장합니다.
따라서 bson-ruby gem과 유사한 작업을 수행합니다.
70 71 72 |
# 파일 'lib/mongoid/matcher/eq_impl.rb', 줄 70 module_function def time_eq?(time_a, time_b) time_rounded_to_millis(time_a) == time_rounded_to_millis(time_b) end |
.time_rounded_to_millis(시간) ⇒ true | false
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
시간 값을 가장 가까운 밀리초로 반올림합니다.
79 80 81 |
# 파일 'lib/mongoid/matcher/eq_impl.rb', 줄 79 module_function def time_rounded_to_millis(시간) 반환 시간._bson_to_i * 1000 + 시간.usec.divmod(1000).first end |