모듈: Mongoid::Findable
- 확장자:
- 전달 가능
- 다음에 정의됨:
- lib/mongoid/findable.rb
개요
이 모듈은 클래스 수준에서 문서를 끊는 finder 메서드를 정의합니다.
인스턴스 메서드 요약 접기
-
#비어 있나요? ⇒ true | false
개수가 0이면 true를 반환합니다.
-
#추정 개수 ⇒ 정수
데이터베이스 의 예상 레코드 수를 반환합니다.
-
#존재합니까?(id_or_conditions = :none) ⇒ true | false
제공된 인수를 기반으로 데이터베이스 에 문서 가 있는 경우 true를 반환합니다.
-
#find(*args, &block) ⇒ 문서 | Array<Document> | nil
_id 값으로
Document
또는 여러 문서를 찾습니다. -
#find_by(attrs = {}) {|result| ... } ⇒ 문서 | nil
주어진 조건에서 첫 번째
Document
를 찾습니다. -
#find_by!(attrs = {}) {|result| ... } ⇒ 문서
주어진 조건에서 첫 번째
Document
를 찾거나 Mongoid::Errors::DocumentNotFound를 발생시킵니다. -
#first(limit = nil) ⇒ 문서 (동의어: #one)
주어진 조건에서 첫 번째
Document
를 찾습니다. -
#last(limit = nil) ⇒ Document
주어진 조건에서 마지막
Document
를 찾습니다.
인스턴스 메서드 세부 정보
#비어 있나요? ⇒ true | false
개수가 0이면 true를 반환합니다.
95 96 97 |
# 파일 'lib/mongoid/findable.rb', 95줄 def 비어 있나요? 카운트 == 0 end |
#추정 개수 ⇒ 정수
데이터베이스 의 예상 레코드 수를 반환합니다.
85 86 87 |
# 파일 'lib/mongoid/findable.rb', 85줄 def 예상 개수 with_default_scope.예상 개수 end |
#존재합니까?(id_or_conditions = :none) ⇒ true | false
제공된 인수를 기반으로 데이터베이스 에 문서 가 있는 경우 true를 반환합니다.
116 117 118 |
# 파일 'lib/mongoid/findable.rb', 116줄 def 존재합니까?(id_or_conditions = : none) with_default_scope.존재합니까?(id_or_conditions) end |
#find(*args, &block) ⇒ 문서 | Array<문서> | nil
각 인수는 개별 ID, ID 배열 또는 중첩 배열일 수 있습니다. 각 배열이 평면화됩니다.
_id 값으로 Document
또는 여러 문서를 찾습니다.
배열이 아닌 단일 인수가 제공되면 이 인수는 찾을 문서 의 _id 값으로 해석됩니다. 데이터베이스 에 일치하는 문서 가 있는 경우 이 문서 가 반환됩니다. 그렇지 않고 raise_not_found_error
Mongoid 구성 옵션이 참이면( 기본값) Errors::DocumentNotFound
이 발생하고, raise_not_found_error
이 거짓이면 find
가 nil
을 반환합니다.
인수가 여러 개 지정되거나 배열 인수가 지정되면 배열 이 평면화되고 각 배열 요소는 찾을 문서 의 _id 값으로 해석됩니다. 그런 다음 조회 는 제공된 _id 값을 가진 모든 문서를 조회하려고 시도합니다. 반환 값은 찾은 문서의 배열 입니다. 각 문서 는 _id 가 find
에 대한 인수에 여러 번 제공되더라도 반환된 배열 에 한 번 나타납니다. raise_not_found_error
Mongoid 구성 옵션이 진실한 경우, 지정된 _id 중 하나라도 데이터베이스 에서 발견되지 않으면 Errors::DocumentNotFound
예외가 발생합니다. raise_not_found_error
Mongoid 구성 옵션이 잘못된 경우 발견된 문서만 반환됩니다. 문서를 찾을 수 없는 경우 반환 값은 빈 배열 입니다.
MongoDB 는 _id 필드 가 배열 이 되는 것을 허용하지 않습니다.
인수는 _id 필드 에 선언된 유형에 따라 관례적인 Mongoid 유형 변환을 거칩니다. 기본값 으로 _id 필드 는 BSON::ObjectId
입니다. 이렇게 하면 문자열이 find
로 전달되고 문자열이 쿼리 구성 중에 BSON::ObjectId
인스턴스로 투명하게 변환됩니다.
If this method is given a block, it delegates to Enumerable#find and returns the first document of those found by the current Crieria object for which the block returns a truthy value. 차단 과 ID가 모두 제공되면 차단 이 무시되고 지정된 ID에 대한 문서가 반환됩니다. 차단 과 Proc가 제공되면 메서드는 Enumerable#find 에 위임하고 proc을 기본값 사용합니다.
find
메서드는 모델 클래스에 정의된 기본값 범위(있는 경우)를 고려합니다.
169 170 171 172 173 174 175 176 |
# 파일 'lib/mongoid/findable.rb', 169줄 def 찾기(*args, &차단) empty_or_proc = args.비어 있나요? || (args.분량 == 1 && args.first.is_a?(Proc)) 만약 block_given? && empty_or_proc with_default_scope.찾기(*args, &차단) other with_default_scope.찾기(*args) end end |
#find_by(attrs = {}) {|result| ... } ⇒ 문서 | nil
주어진 조건에서 첫 번째 Document
를 찾습니다. 일치하는 문서를 찾을 수 없고 Mongoid.raise_not_Found_error가 참이면 Mongoid::Errors::DocumentNotFound가 발생하고, 그렇지 않으면 null nil을 반환합니다.
그리고 Mongoid.raise_not_Found_error가 참입니다.
192 193 194 195 196 197 198 199 |
# 파일 'lib/mongoid/findable.rb', 192줄 def find_by(attrs = {}) 결과 = 위치(attrs).find_first 만약 결과.nil? && 몽고이드.raise_not_Found_error 올리다(오류::DocumentNotFound.신규(self, attrs)) end yield(결과) 만약 결과 && block_given? 결과 end |
#find_by!(attrs = {}) {|result| ... } ⇒ 문서
주어진 조건에서 첫 번째 Document
를 찾거나 Mongoid::Errors::DocumentNotFound를 발생시킵니다.
212 213 214 215 216 217 |
# 파일 'lib/mongoid/findable.rb', 212줄 def find_by!(attrs = {}) 결과 = 위치(attrs).find_first 올리다(오류::DocumentNotFound.신규(self, attrs)) 하지 않는 한 결과 yield(결과) 만약 결과 && block_given? 결과 end |
#first(limit = nil) ⇒ Document 라고도 함: one
주어진 조건에서 첫 번째 Document
를 찾습니다.
227 228 229 |
# 파일 'lib/mongoid/findable.rb', 227줄 def first(limit = nil) with_default_scope.first(limit) end |
#last(limit = nil) ⇒ Document
주어진 조건에서 마지막 Document
를 찾습니다.
240 241 242 |
# 파일 'lib/mongoid/findable.rb', 240줄 def last(limit = nil) with_default_scope.last(limit) end |