모듈: Mongoid::Document

확장자:
ActiveSupport::Concern
다음을 포함합니다.
컴포저블, 터치 가능::인스턴스 메서드
포함 항목:
댓글, GlobalDiscriratorKeyAssignment::InvalidFieldHost, Post
다음에 정의됨:
lib/mongoid/ 문서.rb

개요

이는 데이터베이스에 문서로 유지되어야 하는 모든 도메인 객체에 대한 기본 모듈입니다.

네임스페이스 아래에 정의됨

모듈: 클래스 메서드

상수 요약 접기

ILLEGAL_KEY =

불법적인 BSON 키 일치에 대한 정규식. bson 4.1 에는 대신 사용해야 하는 상수 BSON::String::ILLEGAL_KEY가 있습니다. Ruby 드라이버 2.3.0 이 출시되고 Mongoid를 require >= 2.3.0 으로 업데이트할 수 있는 경우 BSON 상수를 사용할 수 있습니다.

/(\A[$])|(\.)/.동결

컴포저블에 포함된 상수

Composable::MODULES, Composable::RESERVED_METHOD_NAMES

Interceptable에서 포함된 상수

Interceptable::CALLBACKS

연관 관계에서 포함된 상수

연관 관계::MACRO_MAPPING

연관 관계::에포함된 상수

연관 관계::종속::STRATEGIES

Persistable에 포함된 상수

지속 가능::LIST_OPERATIONS

필드에서 포함된 상수

Fields::Boolean, Fields::IDS, Fields::INVALID_BSON_CLASSES, Fields::StringifiedSymbol , Fields::TYPE_MAPPINGS

Atomic에 포함된 상수

Atomic::UPDATES

인스턴스 속성 요약 접기

Stateful에 포함된 속성

#destoryed, #flaged_for_destory, #previously_new_record

연관 관계에서 포함된 속성

#_association

속성에 포함된 속성

#attributes

Clients::StorageOptions에 포함된 속성

#remembered_storage_options

인스턴스 메서드 요약 접기

Touchable::InstanceMethods에 포함된 메서드

#_clear_터치 _업데이트 , #_gather_터치_업데이트, #_런_터치_콜백스_프롬_루트 , #_터치 가능한 _부모?, #suppress_터치_콜백스, #터치, #터치_콜백스 _억제?

컴포저블에 포함된 메서드

금지된_메서드

Equality에 포함된 메서드

#, #==, #eql?

Copyable에 포함된 메서드

#clone

Interceptable에 포함된 메서드

#_mongoid_run_child_after_callbacks, #_mongoid_run_child_before_callbacks, #_mongoid_run_child_callbacks, #_mongoid_run_child_callbacks_with_round, #_mongoid_run_child_callbacks_without_round, #callback_executable, #in_callback_state?, #pending_callbacks, #pending_callbacks=, #run_after_callbacks, #run_before_callbacks, #run_callbacks, #run_pending_callbacks

Validatable에 포함된 메서드

#begin_validate, #exit_validate, #performing_validations?, #read_attribute_for_validation, #valid?, #validated?, #validating_with_query?

Traversable에 포함된 메서드

#_children, #_descendants, #_parent, #_parent=, #_reset_memoized_descendants!, #_root, #_root?, #collect_children, #collect_descendants, #flag_descendants_persisted, #hereditary?, #parentize, #remove_child, #reset_persisted_descendants

Cacheable에 포함된 메서드

#cache_key

Stateful에 포함된 메서드

#destoryed?, #flaged_for_destory?, #new_record=, #new_record?, #persisted?, #previously_new_record?, #previously_persisted?, #pushable?, #readonly!, #readonly?, #settable?, #updateable?

Shardable에 포함된 메서드

#shard_key_field_value, #shard_key_fields, #shard_key_selector, #shard_key_selector_in_db

Serializable에 포함된 메서드

#serializable_hash

Selectable에 포함된 메서드

#atomic_selector

Reloadable에 포함된 메서드

#reload

연관 관계에 포함된 메서드

#association_name, #embedded?, #embedded_many?, #embedded_one?, #referenced_many?, #referenced_one?, #reload_relations

연관 관계::리플렉션에 포함된 메서드

#reflect_on_all_association, #reflect_on_association

연관 관계::매크로에 포함된 메서드

#associations

연관 관계::에포함된 메서드

#apply_destory_dependencies!, 정의_종속성!, 유효성을 검사합니다!

연관 관계::접근자에 포함된 메서드

#__build__, #create_relation, #reset_relation_criteria, #set_relation

연관 관계::Referenced::Syncable에 포함된 메서드

#_syncable?, #_synced, #_synced?, #remove_inverse_keys, #update_inverse_keys

연관 관계::Referenced::CounterCache에 포함된 메서드

정의_콜백!, #reset_counters

연관 관계::참조::자동 저장에 포함된 메서드

#__autosaving__, #autosaved?, #changed_for_autosave?, define_autosave!

Persistable에 포함된 메서드

#atomally, #fail_due_to_callback!, #fail_due_to_validation!

Persistable::Unsettable에 포함된 메서드

#unset

Persistable::Upsertable에 포함된 메서드

#upsert

Persistable::Updatetable에 포함된 메서드

#update, #update!, #update_attribute

Persistable::Settable에 포함된 메서드

#set

Persistable::Savable에 포함된 메서드

#save, #save!

Persistable::Renameable에 포함된 메서드

#rename

Persistable::Pushable에 포함된 메서드

#add_to_set, #push

Persistable::Pullable에 포함된 메서드

#pull, #pull_all

Positional에 포함된 메서드

#positionally

Persistable::Poppable에 포함된 메서드

#pop

Persistable::Multipliable에 포함된 메서드

#mul

Persistable::Minable에 포함된 메서드

#set_min

Persistable::Maxable에 포함된 메서드

#set_max

Persistable::Logical에 포함된 메서드

#bit

Persistable::Incrementable에 포함된 메서드

#inc

Persistable::Destoryable에 포함된 메서드

#destory, #destory!

Persistable::Deletable에 포함된 메서드

# 삭제

Persistable::Creatable에 포함된 메서드

#insert

일치 항목에 포함된 메서드

#_match?

필드에 포함된 메서드

#apply_default, #apply_defaults, #apply_post_processed_defaults, #apply_pre_processed_defaults, #attribute_names, database_field_name, #database_field_name, #dot_dollar_field?, #lazy_settable?, option, options, traverse_association_tree, #using_object_ids?, #validate_writeable_field_name!

E볼버블에 포함된 메서드

#__evolve_object_id__

Attributes에 포함된 메서드

#assign_attributes, #attribute_missing?, #attribute_present?, #attributes_before_type_cast, #has_attribute?, #has_attribute_before_type_cast?, #process_raw_attribute, #read_attribute, #read_attribute_before_type_cast, #remove_attribute, #typed_attributes, #write_attribute, #write_attributes

Attributes::Readonly에 포함된 메서드

#attribute_writeable?

Attributes::Processing에 포함된 메서드

#process_attributes

클라이언트에서 포함된 메서드

clear, 클라이언트, 기본값, 연결 해제, 설정하다, with_name

Clients::Sessions에 포함된 메서드

포함

Client::Options에 포함된 메서드

# 컬렉션, #collection_name, #mongo_client, #persistence_context, #persistence_context?, #with

Clients::StorageOptions에 포함된 메서드

#remember_storage_options!, #storage_options

Changeable에 포함된 메서드

#attribute_before_last_save, #changed, #changed?, #changed_attributes, #changes , #children_changed ?, #move_changes, #post_persist, #previous_changes, #remove_change, #saved_change_to_attribute, #saved_change_to_attribute?, #setters, #write_save_change_to_attribute?

Atomic에 포함된 메서드

#add_atomic_pull, #add_atomic_unset, #atomic_array_add_to_sets, #atomic_array_pulls, #atomic_array_pushes, #atomic_attribute_name, #atomic_delete_modifier, #atomic_insert_modifier, #atomic_path, #atomic_paths, #atomic_position, #atomic_pulls, #atomic_pushes , #atomic_sets, #atomic_unsets , #atomic_updates, #delayed_atomic_pulls(예:

인스턴스 속성 세부 정보

#__selected_fields객체

__selected_fields 속성의 값을 반환합니다.



29
30
31
# 파일 'lib/mongoid/ 문서.rb', 29줄

def __selected_fields
  @__selected_fields
end

#new_record객체 (읽기 전용)

new_record 속성의 값을 반환합니다.



30
31
32
# 파일 'lib/mongoid/ 문서.rb', 30줄

def new_record
  @new_record
end

인스턴스 메서드 세부 정보

#_handle_callbacks_after_instantiation(execute_callbacks) ⇒ 객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

콜백을 실행해야 하는 경우 콜백의 설정 및 실행을 처리합니다. 그렇지 않으면 보류 중인 콜백 목록에 적절한 콜백을 추가합니다.

매개변수:

  • execution_callbacks (true | false)

    콜백을 실행해야 하는지 여부입니다.



211
212
213
214
215
216
217
218
219
220
221
# 파일 'lib/mongoid/ 문서.rb', 211줄

def _handle_callbacks_after_instantiation(execution_callbacks)
  만약 execution_callbacks
    apply_defaults
    yield self 만약 block_given?
    run_callbacks(:find) 하지 않는 한 _find_callbacks.비어 있나요?
    run_callbacks(:initialize) 하지 않는 한 _initialize_callbacks.비어 있나요?
  other
    yield self 만약 block_given?
    self.보류 중인_콜백 += %i[ apply_defaults 찾기 초기화 ]
  end
end

#as_document해시

이 문서 이하에서 전체 문서 계층 구조의 해시를 반환합니다. 현재 문서뿐만 아니라 모든 것에 속성이 필요할 때 사용됩니다.

예시:

전체 계층 구조를 가져옵니다.

person.as_document

반환합니다:

  • (해시)

    계층 구조에 있는 모든 속성의 해시입니다.



134
135
136
# 파일 'lib/mongoid/ 문서.rb', 134줄

def as_document
  BSON::문서.신규(as_attributes)
end

#as_json(options = nil) ⇒ Hash

참고:

Rails 6 는 BSON::ObjectId와 같은 기본이 아닌 유형에 대해 as_json의 반환 값을 변경합니다. Rails <= 5 에서 as_json은 이를 클래스의 인스턴스로 반환했습니다. Rails 6 에서는 기본 유형으로 직렬화되어 반환됩니다(예: '$oid'=>' 5bcfc40bde340b37feda98e9'). github.com/rails/rails/ 커밋/2e5cb980a448e7f4ab00df6e df941456616 참조 c cc aa 을(를) 참조하세요.

추가 Mongoid 관련 옵션을 사용하여 문서 에서 #as_json을 호출합니다.

예시:

문서 를 JSON 으로 가져옵니다.

document.as_json(compact: true)

매개변수:

  • 옵션 (해시) (기본값: nil)

    옵션.

옵션 해시(options):

  • :compact (true | false) — 기본값: 사용 중단됨

    JSON 문서 에 nil 값이 있는 필드를 포함할지 여부입니다.

반환합니다:

  • (해시)

    문서 를 JSON 으로 변환합니다.



156
157
158
159
160
161
162
163
# 파일 'lib/mongoid/ 문서.rb', 156줄

def as_json(옵션 = nil)
  rv = super
  만약 옵션 && 옵션[:compact]
    몽고이드::경고.warn_as_json_compact_deprecated
    rv = rv.컴팩트
  end
  rv
end

#(klass) ⇒ 문서가 됩니다.

현재 문서 의 속성, 오류 및 내장된 문서와 함께 지정된 클래스의 인스턴스 를 반환합니다.

예시:

하위 클래스 문서 를 슈퍼클래스 인스턴스 로 반환합니다.

manager.becomes(Person)

매개변수:

  • class (클래스)

    클래스입니다.

반환합니다:

  • (문서)

    지정된 클래스의 인스턴스입니다.

다음을 발생시킵니다.

  • (ArgumentError)

    클래스에 Mongoid::Document가 포함되지 않은 경우



176
177
178
179
180
181
182
183
# 파일 'lib/mongoid/ 문서.rb', 176줄

def 됩니다.(class)
  mongoid_document_check!(class)

  되었다 = class.신규(clone_document)
  되었다.internal_state = internal_state

  되었다
end

#freezeDocument

문서의 내부 속성을 동결합니다.

예시:

문서 동결

document.freeze

반환합니다:

  • (문서)

    문서입니다.



49
50
51
# 파일 'lib/mongoid/ 문서.rb', 49줄

def 동결
  as_attributes.동결 개인정보 정책에 self
end

#frozen?true | false

문서 가 동결되었는지 확인합니다.

예시:

Check if frozen

document.frozen?

반환합니다:

  • (true | false)

    동결되면 true이고, 그렇지 않으면 false입니다.



59
60
61
# 파일 'lib/mongoid/ 문서.rb', 59줄

def 동결?
  속성.동결?
end

#해시정수

동일한 ID의 두 레코드가 다음과 같이 작업할 수 있도록 ID를 위임합니다.

[ Person.find(1), Person.find(2), Person.find(3) ] &
[ Person.find(1), Person.find(4) ] # => [ Person.find(1) ]

예시:

해시를 가져옵니다.

document.hash

반환합니다:

  • (정수)

    문서 ID의 해시입니다.



73
74
75
# 파일 'lib/mongoid/ 문서.rb', 73줄

def 해시
  신원.해시
end

#identity배열

문서는 클래스와 데이터베이스 ID로 절대적으로 식별됩니다.

Person.first.identity #=> [Person, BSON::ObjectId(' 4f775130a04745933a000003')]

예시:

ID 가져오기

document.identity

반환합니다:

  • (배열)

    [ 문서 배열 , 문서. _id]



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

def 신원
  [ self.클래스, _id ]
end

#initialize(attrs = nil, &block) ⇒ 문서

Document 을(를) 인스턴스화하고, 문서의 속성이 지정된 경우 설정합니다. 속성이 제공되지 않으면 빈 Hash 으)로 초기화됩니다.

기본 키가 정의된 경우 문서의 ID 는 해당 키로 설정되고, 그렇지 않으면 새로운 BSON::ObjectId string 로 설정됩니다.

예시:

새 문서 를 만듭니다.

Person.new(:title => 'Sir')

매개변수:

  • attrs (해시) (기본값: nil)

    문서 를 설정하다 때 사용할 속성입니다.

반환합니다:

  • (문서)

    새 문서입니다.



102
103
104
# 파일 'lib/mongoid/ 문서.rb', 102줄

def 초기화(attrs = nil, &차단)
  configure_document(attrs, &차단)
end

#internal_state=(상태) ⇒ 객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

이 문서 의 내부 상태 를 설정합니다. 재입력 문서 를 초기화하는 데 도움이 되는 #becomes 에서만 사용됩니다.

매개변수:

  • 상태 (해시)

    내부 상태 값의 맵입니다.



191
192
193
194
195
196
197
198
199
200
201
# 파일 'lib/mongoid/ 문서.rb', 191줄

def internal_state=(상태)
  self._id = 상태[:id]
  @changed_attributes = 상태[:changed_attributes]
  @errors = ActiveModel::오류.신규(self). { |e| e.복사!(상태[:errors]) }
  @new_record = 상태[:new_record]
  @destoryed = 상태[:destoryed]

  update_discrirator(상태[:discrirator_key_was])

  mark_persisted_state_for_embedded_documents(상태[:new_record])
end

#모델 이름 ⇒ string

문서 의 모델 이름을 반환합니다.

예시:

모델 이름을 반환합니다.

document.model_name

반환합니다:

  • (string)

    모델 이름입니다.



112
113
114
# 파일 'lib/mongoid/ 문서.rb', 112줄

def 모델 이름
  self.클래스.모델 이름
end

#to_keystring

문서 의 키 값을 반환합니다.

예시:

키를 반환합니다.

document.to_key

반환합니다:

  • (string)

    문서 의 ID이거나 새 경우 nil입니다.



122
123
124
# 파일 'lib/mongoid/ 문서.rb', 122줄

def to_key
  (지속되었나요? || 파괴?) ? [ _id.to_s ] : nil
end