モジュール: Mongoid::Shardable

次による拡張機能。
ActiveSupport::Concern
次のドキュメントに含まれます。
構成可能
定義:
lib/mongoid/shardable.rb

Overview

このモジュールには、アップデートにシャードキー フィールドを追加するための動作が含まれています。

名前空間で定義済み

Modules: クラスメソッド

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

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

shard_key_field_value (フィールド、優先順位:)=オブジェクト

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

名前付きシャードキーの値を返します。 フィールドが埋め込みドキュメントを識別する場合、キーは解析され、再帰的に評価されます。 'prefer_persisted' が true の場合は、 属性の現在の値がどのような値であっても、データベースに最後に保存された値が返されます。

パラメーター:

  • フィールド ( string )

    評価するフィールドの名前

  • preserve_persisted true|false

    現在の値よりも永続的な値を優先するかどうか。

次の値を返します。

  • オブジェクト

    名前付きフィールドの値。



96
97
98
99
100
101
102
103
104
105
# ファイル 'lib/mongoid/shardable.rb' 行96

デフォルト 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 を使用することでリファクタリングが行われます。

シャードキー フィールドを取得します。

例:

シャードキー フィールドを取得します。

model.shard_key_fields

次の値を返します。

  • <String>配列未満

    シャードキー フィールド名。



47
48
49
# ファイル 'lib/mongoid/shardable.rb' 行47

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

# shard_key_selector (prefer_persisted: false) =ハッシュ

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

定義されたシャードキーに一致するセレクターを返します。 'prefer_persisted` が false(デフォルト)の場合は、指定されたシャードキーの現在の値が使用されます。それ以外の場合は、最近永続化された値を使用しようとします。

パラメーター:

  • preserve_persisted true | false (デフォルトはfalse

    シャードキー フィールドの現在の値を使用するか、最新の永続化された値を使用するか。

次の値を返します。

  • ハッシュ

    シャードキー セレクター



63
64
65
66
67
# ファイル 'lib/mongoid/shardable.rb' 行63

デフォルト 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 の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

データベース内のこのドキュメントの既存のバージョンに一致するセレクターを返します。

ドキュメントが永続化されていない場合、このメソッドはシャードキー フィールドの現在の値を使用します。 ドキュメントが永続化されている場合、このメソッドはデータベースから検索された値を使用します。

次の値を返します。

  • ハッシュ

    シャードキー セレクター



79
80
81
# ファイル 'lib/mongoid/shardable.rb' 行79

デフォルト shard_key_selector_in_db
  shard_key_selector(プライマリ_永続: true)
end