モジュール: Mongoid::Document

次による拡張機能。
ActiveSupport::Concern
次のことが含まれます。
複合アクセス可能読み取り可能 ::インスタンスメソッド
次のドキュメントに含まれます。
GlobalDiscriminatorKeyAssignment::InvalidFieldHost people 、 Post
定義:
build/mongoid- 8.1 /lib/mongoid/document.rb

Overview

これは、ドキュメントとしてデータベースに永続化する必要があるすべてのドメイン オブジェクトの基本モジュールです。

名前空間で定義済み

Modules: クラスメソッド

定数の概要の削減

ILLEGAL_KEY =

不正な BSON キーを照合するための正規表現。 bson 4.1には、代わりに使用する必要がある定数 BSON::String::ILLEAL_KEY があることに注意してください。 Ruby ドライバー2.3.0がリリースされ、Mongoid が >= 2.3.0を必要とするように更新できる場合、BSON 定数を使用できます。

/(\A[$])|(\.)/.freeze

Composableから含まれる定数

comosable::MODELESComposable::RESERVED_METHOD_NAMES

インターセプ可能に含まれる定数

中断可能::CALLBACKS

関連付けから含まれる定数

関連付け::MACRO_MAPPING

関連: : 依存関係から含まれる定数

関連付け:

永続的から含まれる定数

永続的::LAST_OPERATIONS

フィールドに含まれる定数

フィールド::ブール値フィールド::IDSフィールド::INVALID_BSON_CLASSESフィールド::Stringed Symbolフィールド::Type_MAPます

アトミックに含まれる定数

Atomic::UPDATES

インスタンス属性の概要を折りたたむ

ステートメントに含まれる属性

コード含む:

関連付けに含まれる属性

#_関連付け

属性に含まれる属性

Attributes

インスタンス メソッドの概要を折りたたむ

Toolsに含まれるメソッド

#contact

Composableに含まれるメソッド

禁止_メソッド

Equalityに含まれるメソッド

#, #==, #===, #eql?

コピー可能なメソッドに含まれるメソッド

#cloud

解釈可能な に含まれるメソッド

#_mongoid_run_子_コールバックs #コールバック_実行可能 #in_呼び出す_状態 、保留中_ コールバックs 、保留中_コールバックs = 、 run_ after_ballbacks 、#run_Before_ Callbacks 、# run_colbacks 、# run_pending_colbacks

Validableに含まれるメソッド

#start_validate#exit_validate#performing_validation#read_attribute_for_validation#valid?番号検証ありますか?#validation_with_query?

Triggersに含まれるメソッド

#_country 、# _ descendant 、# _parent 、#_parent = 、# _reset_memoized_descendrants #_ root #_ root は? 、#collection_fields #collection_descendant 、#flug_descendrants_persed 、 #特権の 所有者 では ありませんか。 、 #parentize #remove_field #reset_persisted_descendrants

Cacheableに含まれるメソッド

#cache_key

ステートメントに含まれるメソッド

#破棄されたか?#fluged_for_delete は?#new_record= 、# new_record?# 永続的か?#preAtlas_new_record ) 、以前はでしたか。#push 可能か?#readonly。#readonly設定可能更新可能か?

シャードに含まれるメソッド

#shard_key_field_value#shard_key_fields#shard_key_Selector#shard_key_selector_in_db

シリアル化可能な に含まれるメソッド

#serializable_hash

選択可能なに含まれるメソッド

#アトミック_Selector

Reloadableに含まれるメソッド

#reload

関連付けから含まれるメソッド

#関連付け_名前#埋め込み# embedded_many# embedded_one# referenced_many は?#referenced_oneか。#reload_relationions

関連付け::Refが含まれるメソッド

#reflect_on_all_関連付け

関連::Macrosから含まれるメソッド

#関連付け

関連: : 依存関係から含まれるメソッド

#apply_detroy_dependenciesdefined_dependency。検証します。

associated ::Accessorに含まれるメソッド

#__Build__#create_relation#reset_relation_criteria#set_relation

関連付け::参照::同期可能

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

関連付け::参照::CounterCacheから含まれるメソッド

定義_コールバック#reset_counters

関連付け::参照::AutoSaveから含まれるメソッド

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

永続的から含まれるメソッド

#アトミックに # fail_due_to_colback #fail_due_to_validation。

Peristable::Unsetableに含まれるメソッド

#unset

Peristable::Upserableに含まれるメソッド

#upsert

Peristable::Updatetableに含まれるメソッド

#update, #update!, #update_attribute

Peristable::Setableに含まれるメソッド

#set

Peristable:: Saveableに含まれるメソッド

#save, #save!

Peristable::Renameableに含まれるメソッド

#rename

Peristable::Pushableに含まれるメソッド

#add_to_set#push

Peristable::Pullableに含まれるメソッド

#pull, #pull_all

位置から含まれるメソッド

位置的に

Peristable::Popableに含まれるメソッド

#pop

Peristable:: Logicalに含まれるメソッド

ビット

Persionable::Incrementableに含まれるメソッド

#inc

Peristable::Destructorableに含まれるメソッド

#デプロイ#デプロイ 。

Peristable::Deleteableに含まれるメソッド

#delete

Persionable::Createableに含まれるメソッド

#insert

Matchableに含まれるメソッド

#_一致

Inspectableに含まれるメソッド

#inspect

フィールドに含まれるメソッド

、、 、 #lazy_settable オプション オプション 、 traverse_asaction_tree # using_object_ids 、 、 #validate_writeable_field_name。

EOLに含まれるメソッド

# MongoDB_object_id__

属性に含まれるメソッド

#assign_attributes #attribute_Missing? #attribute_presentation 、#attributes_Before_type_ Cast 、# has_attribute ? #has_attribute_Before_type_lastか。 # process_raw_attribute # read_attribute # read_attribute_confirm

属性::Readonlyに含まれるメソッド

#attribute_writeable?

Attributes::Processingに含まれるメソッド

#process_attributes

クライアントに含まれるメソッド

クライアント クリア 、 デフォルト 、 切断 、 設定 with_name

Clients::Sessionsに含まれるメソッド

#with_session

Clients::Optionsに含まれるメソッド

#collection#collection_name#mongo_client 、#永続性_context 、#永続性_context?

Changeableに含まれるメソッド

#attribute_from #changed_attributes 、#changes # String_changed 、 、 #move_changes 、 # post_persist # prevなります。 #setters 、 #_save_change_to_attribute?

アトミックに含まれるメソッド

#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 、遅延_アトミック_セット 、遅延_アトミック_unsets 、#フラグ_as_destricted#フラグメント_デプロイs# process_flugger_delete s

インスタンス属性の詳細

# __selected_fields =オブジェクト

属性 __selected_fields の値を返します。



30
31
32
ファイル ' build/mongoid- 8.1 /lib/mongoid/document.rb ' の場合は30行

デフォルト __selected_fields
  @__selected_fields
end

# new_record 詳しくは、オブジェクト(読み取り専用)

属性 new_record の値を返します。



31
32
33
ファイル ' build/mongoid- 8.1 /lib/mongoid/document.rb ' の場合は31行

デフォルト new_record
  @new_record
end

インスタンス メソッドの詳細

# as_document =ハッシュ

このドキュメントから、ドキュメント階層全体のハッシュを返します。 現在のドキュメントだけでなくすべてに属性が必要な場合に使用されます。

例:

完全な階層を取得します。

person.as_document

次の値を返します。

  • ハッシュ

    階層内のすべての属性のハッシュ。



135
136
137
ファイル ' build/mongoid- 8.1 /lib/mongoid/document.rb ' の場合は135行

デフォルト as_document
  BSON::ドキュメント.新着情報(as_attributes)
end

#as_json(options = nil) ⇒ Hash

注:

Rails 6は、 BSON::ObjectId などの非プリミティブ型の as_json の戻り値を変更します。 Rails <= 5では、as_json はこれらを クラスのインスタンスとして返しました。 Rails 6では、これらはプリミティブ型(例: 9 5 40 340 37 98 github.com/ Rails/ Rails/commit/2 e5 db980 a448 e7 f4 ab00 6941cf e456616 ad を参照してください c c aa詳しくは、 を参照してください。

Mongoid 固有の追加オプションを使用して、ドキュメントに対して #as_json を呼び出します。

例:

ドキュメントをJSONとして取得します。

document.as_json(compact: true)

パラメーター:

  • options ハッシュ (デフォルトはnil

    オプション。

オプション ハッシュ( options ):

  • : compact true | false (デフォルト:非推奨) —

    JSONドキュメントに nil 値を持つフィールドを含めるかどうか。

次の値を返します。

  • ハッシュ

    JSONとしてのドキュメント。



157
158
159
160
161
162
163
164
ファイル ' build/mongoid- 8.1 /lib/mongoid/document.rb ' の場合は157行

デフォルト as_json(options = nil)
  rv = スーパー
  場合 options & & options[: compact]
    Mongoid::警告.警告_as_json_compact_deprecation_deprecation
    rv = rv.compact
  end
  rv
end

#(klas) になります =ドキュメント

現在のドキュメントの属性、エラー、埋め込みドキュメントを持つ指定されたクラスのインスタンスを返します。

例:

サブクラスのドキュメントをスーパークラス インスタンスとして返します。

manager.becomes(Person)

パラメーター:

  • klass クラス

    になるクラス。

次の値を返します。

次の値が発生します。

  • (ArgumentError)

    クラスに Mongoid::Document が含まれていない場合



177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
ファイル ' build/mongoid- 8.1 /lib/mongoid/document.rb ' の場合は177行

デフォルト になります(klass)
  ただし、 klass.include?(Mongoid::ドキュメント)
    発生 ArgumentError, " Mongoid::Document を含むクラスが予想されています"
  end

   = klass.新着情報(clone_document)
  ._id = _id
  .instance_variable_set(:@changed_attributes, Changed_attributes)
  new_errors = ActiveModel::Errors.新着情報()
  new_errors.コピーします。(errors)
  .instance_variable_set(:@errors, new_errors)
  .instance_variable_set(:@new_record, new_record?)
  .instance_variable_set(:@破棄された, 破棄されたか?)
  .Changed_attributes[klass.弁別子_キー] = 自己.クラス.弁別子_値
  [klass.弁別子_キー] = klass.弁別子_値

  埋め込みDocsを永続化としてマークします
  embedded_relationions.each_pair 行う |name, meta|
    Within_自動ビルド 行う
      関係 = .__send__(name)
      配列.ラップ(関係). 行う |R|
        R.instance_variable_set(:@new_record, new_record?)
      end
    end
  end

  
end

#freezeDocument

ドキュメントの内部属性を固定します。

例:

ドキュメントを固定する

document.freeze

次の値を返します。



50
51
52
ファイル ' build/mongoid- 8.1 /lib/mongoid/document.rb ' の場合は50行

デフォルト freeze
  as_attributes.freeze および 自己
end

#frozen?true | false

ドキュメントが固定されているかどうか

例:

Check if frozen

document.frozen?

次の値を返します。

  • true | false

    固定されている場合は true、それ以外の場合は false。



60
61
62
ファイル ' build/mongoid- 8.1 /lib/mongoid/document.rb ' の場合は60行

デフォルト frozen?
  属性.frozen?
end

#ハッシュ=整数

同じ ID の 2 つのレコードが次のようなもので機能するように ID に委任します。

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

例:

ハッシュを取得します。

document.hash

次の値を返します。

  • (整数)

    ドキュメントの ID のハッシュ。



74
75
76
ファイル ' build/mongoid- 8.1 /lib/mongoid/document.rb ' の場合は74行

デフォルト ハッシュ
  identity.ハッシュ
end

ID配列

ドキュメントの は、クラスとデータベース ID によって絶対に識別されます。

4 04745933 000003 775130

例:

ID を取得する

document.identity

次の値を返します。

  • 配列

    [document.Class] を含む配列、 document._id]



86
87
88
ファイル ' build/mongoid- 8.1 /lib/mongoid/document.rb ' の場合は86行

デフォルト identity
  [ 自己.クラス, 自己._id ]
end

#initialize(attrs = nil, &block) ⇒ Document

新しいDocumentをインスタンス化し、ドキュメントの属性が指定されている場合は設定します。 属性が指定されていない場合は、空のHashで初期化されます。

プライマリキーが定義されている場合、ドキュメントの ID はそのキーに設定され、それ以外の場合は新しいBSON::ObjectId string に設定されます。

例:

新しいドキュメント を作成します。

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

パラメーター:

  • attrs ハッシュ (デフォルトはnil

    ドキュメントを設定する属性。

次の値を返します。



103
104
105
ファイル ' build/mongoid- 8.1 /lib/mongoid/document.rb ' の場合は103行

デフォルト 初期化(attrs = nil, &ブロック)
  struct_document(attrs, &ブロック)
end

#model_name = string

ドキュメントのモデル名を返します。

例:

モデル名を返します。

document.model_name

次の値を返します。

  • ( string )

    モデル名。



113
114
115
ファイル ' build/mongoid- 8.1 /lib/mongoid/document.rb ' の場合は113行

デフォルト model_name
  自己.クラス.model_name
end

# to_key = string

ドキュメントのキー値を返します。

例:

キーを返します。

document.to_key

次の値を返します。

  • ( string )

    ドキュメントの ID または新しい場合は nil 。



123
124
125
ファイル ' build/mongoid- 8.1 /lib/mongoid/document.rb ' の場合は123行

デフォルト to_key
  (永続化された場合 || 破棄されたか?) ? [ _id.to_s ] : nil
end