모듈: Mongoid::CollectionConfigurable::ClassMethods

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

인스턴스 메서드 요약 접기

인스턴스 메서드 세부 정보

#create_collection(force: false) ⇒ 객체

호출된 Mongoid 모델에 대한 컬렉션을 생성합니다.

이 메서드는 기존 컬렉션을 다시 만들지 않습니다.

문서 collection_options 키가 있는 store_in 매크로가 포함된 경우 컬렉션 만들 때 이러한 옵션이 사용됩니다.

매개변수:

  • force (true | false) (기본값은 false)

    true인 경우 이 메서드는 새 컬렉션을 만들기 전에 기존 컬렉션을 삭제합니다. false인 경우 이 메서드는 데이터베이스 에 존재하지 않는 새 컬렉션 만 생성합니다.

다음을 발생시킵니다.



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
49
50
51
52
# 파일 'lib/mongoid/collection_configurable.rb', 줄 22

def create_collection(force: 거짓)
  만약 collection_name.비어 있나요?
    # 이는 익명 클래스일 가능성이 높으므로 무시합니다.
    반환
  end
  만약 /^system\./.일치?(collection_name)
    # 시스템 컬렉션으로 아무것도 하지 않습니다.
    반환
  end

  컬렉션.제거 만약 force
  만약 coll_options = 컬렉션.database.list_collections(필터: { 이름: collection_name.to_s }).first
    올리다 오류::DropCollectionFailure.신규(collection_name) 만약 force

    로거.debug(
      "MONGOID: 컬렉션 '#{collection_name}'이(가) 이미 존재합니다 . +
      "데이터베이스 '#{database_name}' 및 옵션 '#{coll_options}'."
    )

  other
    시작
      컬렉션.database[collection_name, storage_options.가져오기(:collection_options, {})].create
    구출 mongo::오류::OperationFailure => e
      올리다 오류::CreateCollectionFailure.신규(
        collection_name,
        storage_options[:collection_options],
        e
      )
    end
  end
end