모듈: Mongoid::Criteria::Findable

포함 항목:
Mongoid::Criteria
다음에 정의됨:
lib/mongoid/criteria/findable.rb

개요

Mongoid::Criteria에 포함된 Mixin 모듈은 ID로 문서 를 찾는 기능 을 추가합니다.

인스턴스 메서드 요약 접기

인스턴스 메서드 세부 정보

#execution_or_raise(id, multi) ⇒ 문서 | 배열<문서>

기준을 실행하거나 문서를 찾을 수 없는 경우 오류를 발생시킵니다.

예시:

실행 또는 올리기

criteria.execute_or_raise(id)

매개변수:

  • ID (객체)

    전달된 인수입니다.

  • 멀티 (true | false)

    인수가 있는지 여부는 목록이므로 반환 값은 배열 이어야 합니다.

반환합니다:

다음을 발생시킵니다.



23
24
25
26
27
# 파일 'lib/mongoid/criteria/findable.rb', 줄 23

def execution_or_raise(ID, 멀티)
  결과 = multiple_from_db(ID)
  check_for_missing_documents!(결과, ID)
  멀티 ? 결과 : 결과.first
end

#find(*args) ⇒ 문서 | 배열<문서>

참고:

각 인수는 개별 ID, ID 배열 또는 중첩 배열일 수 있습니다. 각 배열이 평면화됩니다.

제공된 ID에 대한 기준에서 일치하는 문서를 찾습니다.

예시:

ID로 찾기.

criteria.find(BSON::ObjectId.new)

여러 ID로 찾기.

criteria.find([ BSON::ObjectId.new, BSON::ObjectId.new ])

매개변수:

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

    찾을 ID입니다.

반환합니다:

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

    일치하는 문서 입니다.



43
44
45
46
47
# 파일 'lib/mongoid/criteria/findable.rb', 줄 43

def 찾기(*args)
  ID = prepare_ids_for_find(args)
  raise_invalid 만약 ID.어떤?(&:nil?)
  for_ids(ID).execution_or_raise(ID, multi_args?(args))
end

#for_ids(ids) ⇒ 기준

일치해야 하는 ID를 지정하는 기준을 Criteria 에 추가합니다.

예시:

단일 ID 기준을 추가합니다.

criteria.for_ids([ 1 ])

여러 ID 기준을 추가합니다.

criteria.for_ids([ 1, 2 ])

매개변수:

  • ID (배열)

    ID의 배열입니다.

반환합니다:

  • (기준)

    복제된 기준입니다.



60
61
62
63
64
65
66
67
# 파일 'lib/mongoid/criteria/findable.rb', 줄 60

def for_ids(ID)
  ID = mongoize_ids(ID)
  만약 ID.size > 1
    send(id_finder, { _id: { "$in" => ID }})
  other
    send(id_finder, { _id: ID.first })
  end
end

#multiple_from_db(ids) ⇒ Array<Document>

ID 맵에서 문서를 가져오고, 문서를 찾을 수 없는 경우 데이터베이스를 조회합니다.

예시:

맵 또는 기준에서 문서를 가져옵니다.

criteria.multiple_from_map_or_db(ids)

매개변수:

  • ID (Array<Object>)

    검색된 ID입니다.

반환합니다:

  • (Array<Document>)

    발견된 문서.



78
79
80
81
82
# 파일 'lib/mongoid/criteria/findable.rb', 줄 78

def multiple_from_db(ID)
  반환 항목 만약 임베디드?
  ID = mongoize_ids(ID)
  ID.비어 있나요? ? [] : from_database(ID)
end