모듈: Mongoid::CollectionConfigurable::ClassMethods

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

인스턴스 메서드 요약 접기

인스턴스 메서드 세부 정보

#create_collection(force: false) ⇒ 객체

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

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

문서 에 'collection_options' 키가 있는 'store_in' 매크로가 포함된 경우,

these options are used when creating the collection.

매개변수:

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

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

다음을 발생시킵니다.



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
55
56
# 파일 'lib/mongoid/collection_configurable.rb', 줄 24

def create_collection(force: 거짓)
  만약 collection_name.비어 있나요?
    # 이는 익명 클래스일 가능성이 높으므로 무시합니다.
    반환
  end
  만약 collection_name.match(/^system\./)
    # 시스템 컬렉션으로 아무것도 하지 않습니다.
    반환
  end
  만약 force
    컬렉션.제거
  end
  만약 coll_options = 컬렉션.database.list_collections(필터: { 이름: collection_name.to_s }).first
    만약 force
      올리다 오류::DropCollectionFailure.신규(collection_name)
    other
      로거.debug(
        "MONGOID: 컬렉션 '#{collection_name}'이(가) 이미 존재합니다 . +
        "데이터베이스 '#{database_name}' 및 옵션 '#{coll_options}'."
      )
    end
  other
    시작
      컬렉션.database[collection_name, storage_options.가져오기(:collection_options, {})].create
    구출 mongo::오류::OperationFailure => e
      올리다 오류::CreateCollectionFailure.신규(
        collection_name,
        storage_options[:collection_options],
        e
      )
    end
  end
end