クラス: Mongoid::Attributes::Projector Private
- 継承:
-
オブジェクト
- オブジェクト
- Mongoid::Attributes::Projector
- 定義:
- lib/mongoid/attributes/projector.rb
Overview
このクラスは、プライベート API の一部です。 このクラスは将来削除または変更される可能性があるため、可能な限り使用しないでください。
このモジュールは プロジェクション ヘルパーを定義します。
プロジェクション ルールはどちらかというと簡単ではありません。 www.mongodb.com/ja-jp/docs/manual/reference/method/db.collection.find/#find-projectionを参照してください。 サーバー ドキュメント用。 4.4サーバー(およびほぼすべての古いサーバー)では、コンテンツ フィールドのプロジェクションが除外的または包含的のいずれかである必要があります。つまり、同じクエリで除外と包含を混在させることはできません。 ただし、コンテンツフィールドを含むプロジェクションでは、_id を除外できます。 この書き込みの時点で、 0と1以外の整数プロジェクションの値は正式にドキュメント化されていません。 DOCSP- 15266を参照してください。 4.4サーバーでは、ドット表記に加えてネストされたハッシュ プロジェクションの指定も許可されています。これは Mongoid がまだ処理しないと想定されます。
インスタンス属性の概要を折りたたむ
- #content_projection =オブジェクト readOnly private
- # id_projection_value =オブジェクト readOnly private
インスタンス メソッドの概要を折りたたむ
-
属性_or_path_allowed? (name) = true | false
private
指定された属性またはドット表記パスが構成されたプロジェクションで許可されているかどうか(許可されている場合)を判断します。
-
#Initialize (プロジェクション)=プロジェクション
コンストラクター
private
プロジェクションの新しいインスタンス。
コンストラクターの詳細
#Initialize (プロジェクション)=プロジェクション
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
プロジェクションの新しいインスタンスを返します。
24 25 26 27 28 29 30 31 32 33 |
# ファイル 'lib/mongoid/attributes/projector.rb' は、 24行を デフォルト 初期化(プロジェクション) 場合 プロジェクション @content_projection = プロジェクション.dup @content_projection.削除('_id') @id_projection_value = プロジェクション['_id'] else @content_projection = nil @id_projection_value = nil end end |
インスタンス属性の詳細
#content_projection =オブジェクト(読み取り専用)
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
36 37 38 |
# ファイル 'lib/mongoid/attributes/projector.rb' は、 36行を デフォルト content_projection @content_projection end |
# id_projection_value =オブジェクト(読み取り専用)
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
35 36 37 |
# ファイル 'lib/mongoid/attributes/projector.rb' は、 35行を デフォルト id_projection_value @id_projection_value end |
インスタンス メソッドの詳細
属性_or_path_allowed? (name) = true | false
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
指定された属性またはドット表記パスが構成されたプロジェクションで許可されているかどうか(許可されている場合)を判断します。
構成されたプロジェクションがない場合、 は true を返します。
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# ファイル 'lib/mongoid/attributes/projector.rb' は、 48行を デフォルト 属性_or_path_allowed?(name) # _id の特別な処理。 場合 name == '_id' 結果 = ただし、 id_projection_value.nil? value_includer(id_projection_value) else true end return 結果 end 場合 content_projection.nil? # プロジェクションはありません(空のプロジェクションではない)。 # すべての属性が許可されます。 return true end # 要求された名前やパスと一致する、または要求された名前やパスの親であるアイテムを検索します。 # これは、たとえば、プロジェクションが次の場合に対応します: {foo: true} と、foo.bar が許可されているかどうかを確認したい。 item, 価値 = content_projection.検出 行う |path, 価値| (name + '.').start_with?(path + '.') end 場合 item return value_includer(価値) end 場合 content_includer # 要求された名前やパスの厳密な子であるアイテムを検索します。 # これは、たとえば、プロジェクションが次の場合に対応します: # {"foo.bar" => true} と、foo が許可されているかどうかを確認したい。 #(バーのコンテナです) item, 価値 = content_projection.検出 行う |path, 価値| (path + '.').start_with?(name + '.') end 場合 item return true end end !content_includer end |