モジュール: Mongoid::Shardable
- 次による拡張機能。
- ActiveSupport::Concern
- 次のドキュメントに含まれます。
- 構成可能
- 定義:
- build/mongoid- 8.1 /lib/mongoid/shardable.rb
Overview
このモジュールには、アップデートにシャードキー フィールドを追加するための動作が含まれています。
名前空間で定義済み
Modules: クラスメソッド
インスタンス メソッドの概要を折りたたむ
-
shard_key_field_value (フィールド、優先順位:)= オブジェクト
private
名前付きシャードキーの値を返します。
-
# shard_key_fields =<String> 配列=string=string===========================
シャードキー フィールドを取得します。
-
# shard_key_selector (prefer_persisted: false) = ハッシュ
private
定義されたシャードキーに一致するセレクターを返します。
-
# shard_key_selector_in_db =ハッシュ
private
データベース内のこのドキュメントの既存のバージョンに一致するセレクターを返します。
インスタンス メソッドの詳細
shard_key_field_value (フィールド、優先順位:)=オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
名前付きシャードキーの値を返します。 フィールドが埋め込みドキュメントを識別する場合、キーは解析され、再帰的に評価されます。 'prefer_persisted' が true の場合は、 属性の現在の値がどのような値であっても、データベースに最後に保存された値が返されます。
95 96 97 98 99 100 101 102 103 104 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/shardable.rb', 行95 デフォルト shard_key_field_value(フィールド, プライマリ_永続:) 場合 フィールド.include?(" . ") 関係, 残り = フィールド.分裂(" . ", 2) 送信(関係)&.shard_key_field_value(残り, プライマリ_永続: preserve_persisted) elsif preserve_persisted & & !new_record? Atlas App Services(フィールド) else 送信(フィールド) end end |
# shard_key_fields = 配列 =string=string===========================<String>
クラス ロード パフォーマンスのためにdelete を使用することでリファクタリングが行われます。
シャードキー フィールドを取得します。
46 47 48 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/shardable.rb', 行46 デフォルト shard_key_fields 自己.クラス.shard_key_fields end |
# shard_key_selector (prefer_persisted: false) =ハッシュ
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
定義されたシャードキーに一致するセレクターを返します。 'prefer_persisted` が false(デフォルト)の場合は、指定されたシャードキーの現在の値が使用されます。それ以外の場合は、最近永続化された値を使用しようとします。
62 63 64 65 66 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/shardable.rb', 行62 デフォルト shard_key_selector(プライマリ_永続: false) shard_key_fields.each_with_object({}) 行う |フィールド, セレクター| セレクター[フィールド.to_s] = shard_key_field_value(フィールド.to_s, プライマリ_永続: preserve_persisted) end end |
# shard_key_selector_in_db =ハッシュ
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
データベース内のこのドキュメントの既存のバージョンに一致するセレクターを返します。
ドキュメントが永続化されていない場合、このメソッドはシャードキー フィールドの現在の値を使用します。 ドキュメントが永続化されている場合、このメソッドはデータベースから検索された値を使用します。
78 79 80 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/shardable.rb', 行78 デフォルト shard_key_selector_in_db shard_key_selector(プライマリ_永続: true) end |