モジュール: Mongo::CursorHost

次のドキュメントに含まれます。
Mongo::Collection::View::Iterable Database::View Index::View
定義:
lib/mongo/cursor_host.rb

Overview

カーソルをホスト(または生成)するエンティティの 設定と構成を実装する共有保証。

この保証を含むクラスまたはモジュールは、以下を実装する必要があります。

* timeout_ms -- this must return either the operation level timeout_ms
    (if set) or an inherited timeout_ms from a hierarchically higher
    level (if any).

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

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

インスタンス属性の詳細

#cursornil | Cursor (readonly)

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

このビューに関連付けられているカーソルがある場合は、それを返します。

次の値を返します。

  • (nil | Cursor)

    カーソル(存在する場合)。



17
18
19
# ファイル 'lib/mongo/cursor_host.rb' 行 17

デフォルト cursor
  @cursor
end

# timeout_mode :cursor_Lifetime | :反復(読み取り専用)

このオブジェクトで使用するタイムアウトモードを返します。

次の値を返します。

  • :cursor_Lifetime | :iteration

    このオブジェクトで使用するタイムアウトモード。



21
22
23
# ファイル 'lib/mongo/cursor_host.rb' 行 21

デフォルト timeout_mode
  @timeout_mode
end

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

#validate_timeout_mode!(options, forbid: []) ⇒ Object

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

タイムアウトモードが指定された他のオプションに適していることを確認します。

rust メトリクスを無効化

パラメーター:

  • options ハッシュ

    検査するオプション。

  • forbid 配列 < Symbol > (デフォルトは[]

    このクラスに対して禁止するオプションのリスト。

次の値が発生します。

  • (ArgumentError)

    一貫性のない、または互換性のないオプションが検出された場合は 。



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
# ファイル 'lib/mongo/cursor_host.rb' 行 35

デフォルト validate_timeout_mode!(options, forbid: [])
  forbid. 行う |キー|
    発生 ArgumentError, "ここでは#{key }は許可されていません" 場合 options.key?(キー)
  end

  cursor_type = options[: cursor_type]
  timeout_mode = options[:timeout_mode]

  場合 timeout_ms
    # "追尾可能 (tailable) カーソルは、
    # timeoutMode オプション。 これはデフォルト値であり、ドライバーは する必要があります
    オプションが CURSOR_Lifetime に設定されている場合は、 でエラーが発生します。
    場合 cursor_type
      timeout_mode ||= :反復
      場合 timeout_mode == : cursor_Lifetime
        発生 ArgumentError, ' の追尾可能 (tailable) カーソルは `timeout_mode: : 反復 ` のみをサポートします
      end

      # "[maxAwaitTimeMS] オプションが設定されている場合、ドライバーはエラーが発生する必要があります、
      # timeoutMS はゼロ以外の値に設定され、 maxAwaitTimeMS は
      は、 timeoutMS より大きいかどうかの値を指定します。
      max_await_time_ms = options[:max_await_time_ms] || 0
      場合 cursor_type == :tailable_await & & max_await_time_ms >= timeout_ms
        発生 ArgumentError, :max_await_time_ms は、>= :timeout_ms であってはなりません
      end
    else
      # "追尾可能 (tailable) ではないカーソルの場合、 timeoutMode のデフォルト値
      は CURSOR_LifeTIME です。
      timeout_mode ||= : cursor_Lifetime
    end
  elsif timeout_mode
    # "timeoutMode が設定され、 timeoutMS が設定されていない場合、ドライバーはエラーが発生する 必要があります 。
    発生 ArgumentError, :timeout_mode が設定されている場合は、 :timeout_ms を設定する必要があります
  end

  場合 timeout_mode == :反復 & & respond_to?(:write?) & & 書込み (write)?
    発生 ArgumentError,  timeout_mode=: 反復処理は、 $out または $merge を使用した集計パイプラインではサポートされません
  end

  # オプションを更新するのではなく、それをインスタンス変数として設定する
  カーソルの種類が変更された場合(例: #configure())、新しい
  #インスタンスは別のデフォルトの timeout_mode を選択できる必要があります
  : timeout_mode が最初に設定されていない場合は 。
  @timeout_mode = timeout_mode
end