모듈: 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