モジュール: Mongo::Operation::Executable Private

次のことが含まれます。
ResponseHandling
次のドキュメントに含まれます。
OpMsgBase
定義:
lib/mongo/ 操作/shared/executable.rb

Overview

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

操作の共有実行可能な動作。

以来

  • 2.5.2

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

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

インスタンス属性の詳細

#contextOperation::Context | nil

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

この操作 の実行に使用される操作コンテキストを返します。

次の値を返します。

  • Operation::Context | nil

    この操作の実行に使用される操作コンテキスト 。

以来

  • 2.5.2



33
34
35
# ファイル 'lib/mongo/操作/shared/executable.rb' 行 33

デフォルト context
  @context
end

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

# do_execute (接続、コンテキスト、オプション = {}) =オブジェクト

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

以来

  • 2.5.2



35
36
37
38
39
40
41
42
43
44
45
46
47
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
# ファイル 'lib/mongo/操作/shared/executable.rb' 行 35

デフォルト do_execute(接続, context, options = {})
  :インスタンスにコンテキストを保存し、それを として渡す必要がないようにします。
  すべての単一メソッドへの#パラメーター。 次のレガシーメソッドが多数あります:
  # は、それをパラメーターとして引き続き受け入れます。これらは一時的に残ります
  # この変更の影響を最小限に抑えるには を行います。 将来的には、次のようになります
  # はデータをリファクタリングするのに適しているため、代わりにこの保存された参照が使用されます。
  @context = context

  セッション&.マテリアライズドの場合
  unping_maybe(セッション, 接続) 行う
    add_error_ labels(接続, context) 行う
      checkpoint_for_network_error 行う
        add_server_iagnostics(接続) 行う
          get_result(接続, context, options).タップ 行う |結果|
            場合 セッション
              場合 セッション.in_transaction? & &
                接続.説明.load_ balancer?
              次に
                場合 セッション.ピン留め_接続_グローバル_id
                  ただし、 セッション.ピン留め_接続_グローバル_id == 接続.global_id
                    発生(
                      エラー::internalDriverError,
                      " 接続を使用する操作は 想定されていましたが、 #{ session . Connector global_id } は、 #{ connection . global_id } を 使用し まし た
                    )
                  end
                else
                  セッション.point_to_ connection(接続.global_id)
                  接続.ピン
                end
              end

              場合 セッション.スナップショット & & !セッション.snapshot_timestamp
                セッション.snapshot_timestamp = 結果.snapshot_timestamp
              end
            end

            場合 結果.has_cursor_id? & &
              接続.説明.load_ balancer?
            次に
              場合 結果.cursor_id == 0
                接続.unpin
              else
                接続.ピン
              end
            end
            Process_result(結果, 接続)
          end
        end
      end
    end
  end
end

#実行(接続、コンテキスト 、オプション: {}) =オブジェクト

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

以来

  • 2.5.2



88
89
90
91
92
93
94
95
96
97
98
# ファイル 'lib/mongo/操作/shared/executable.rb' 行 88

デフォルト 実行する(接続, context:, 次のオプションがあります。 {})
  場合 Lint.有効か
    ただし、 接続.is_a?(mongo::サーバー::接続)
      発生 エラー::LintError, "接続引数のタイプが正しくありません: #{ connection } "
    end
  end

  do_execute(接続, context, options).タップ 行う |結果|
    validate_result(結果, 接続, context)
  end
end