모듈: Mongoid::Findable

확장자:
전달 가능
다음에 정의됨:
lib/mongoid/findable.rb

개요

이 모듈은 클래스 수준에서 문서를 끊는 finder 메서드를 정의합니다.

인스턴스 메서드 요약 접기

인스턴스 메서드 세부 정보

#비어 있나요?true | false

개수가 0이면 true를 반환합니다.

예시:

이 모델에 대해 저장된 문서가 없습니까?

Person.empty?

반환합니다:

  • (true | false)

    컬렉션 이 비어 있는 경우.



95
96
97
# 파일 'lib/mongoid/findable.rb', 95줄

def 비어 있나요?
  카운트 == 0
end

#추정 개수 ⇒ 정수

데이터베이스 의 예상 레코드 수를 반환합니다.

예시:

일치하는 문서 수를 가져옵니다.

Person.estimated_count

반환합니다:

  • (정수)

    일치하는 문서 수입니다.



85
86
87
# 파일 'lib/mongoid/findable.rb', 85줄

def 예상 개수
  with_default_scope.예상 개수
end

#존재합니까?(id_or_conditions = :none) ⇒ true | false

제공된 인수를 기반으로 데이터베이스 에 문서 가 있는 경우 true를 반환합니다.

예시:

조건에 대한 문서가 있나요?

Person.exists?

주어진 _id에 대한 문서가 있습니까?

Person.exists?(BSON::ObjectId(...))

주어진 조건에 맞는 문서가 있습니까?

Person.exists?(name: "...")

매개변수:

  • id_or_conditions (해시 | 객체 | false) (기본값: :none)

    검색 할 _id , 조건 해시, nil 또는 false.

반환합니다:

  • (true | false)

    조건에 대한 문서가 있는 경우. nil 또는 false를 전달하면 항상 false입니다.



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 이 거짓이면 findnil 을 반환합니다.

인수가 여러 개 지정되거나 배열 인수가 지정되면 배열 이 평면화되고 각 배열 요소는 찾을 문서 의 _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 메서드는 모델 클래스에 정의된 기본값 범위(있는 경우)를 고려합니다.

매개변수:

  • *args ([ Object | Array<Object> ]...)

    찾을 ID입니다.

반환합니다:

  • (문서 | 배열<문서> | nil)

    문서 또는 일치하는 문서입니다.

다음을 발생시킵니다.

  • Errors::DocumentNotFound 모든 문서를 찾을 수 없고 raise_not_found_error Mongoid 구성 옵션이 진실한 경우입니다.



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가 참입니다.

예시:

ID 이외의 속성으로 문서 찾기

Person.find_by(:username => "superuser")

매개변수:

  • attrs (해시) (기본값: {})

    확인할 속성입니다.

수율:

  • (결과)

반환합니다:

  • (Document | nil)

    일치하는 문서 입니다.

다음을 발생시킵니다.



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를 발생시킵니다.

예시:

ID 이외의 속성으로 문서 찾기

Person.find_by(:username => "superuser")

매개변수:

  • attrs (해시) (기본값: {})

    확인할 속성입니다.

수율:

  • (결과)

반환합니다:

  • (문서)

    일치하는 문서 입니다.

다음을 발생시킵니다.



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 를 찾습니다.

예시:

첫 번째 문서 를 찾습니다.

Person.first

매개변수:

  • limit (정수) (기본값: nil)

    반환할 문서 수입니다.

반환합니다:

  • (문서)

    일치하는 첫 번째 문서 입니다.



227
228
229
# 파일 'lib/mongoid/findable.rb', 227줄

def first(limit = nil)
  with_default_scope.first(limit)
end

#last(limit = nil) ⇒ Document

주어진 조건에서 마지막 Document 를 찾습니다.

예시:

마지막 문서를 찾습니다.

Person.last

매개변수:

  • limit (정수) (기본값: nil)

    반환할 문서 수입니다.

반환합니다:

  • (문서)

    마지막으로 일치하는 문서 입니다.



240
241
242
# 파일 'lib/mongoid/findable.rb', 240줄

def last(limit = nil)
  with_default_scope.last(limit)
end