クラス: Mongo::Database

継承:
オブジェクト
  • オブジェクト
すべて表示
次による拡張機能。
転送可能
次のことが含まれます。
再試行可能
定義:
lib/mongo/database.rb,
lib/mongo/database/view.rb

Overview

db サーバー上のデータベースと、このレベルで実行可能な操作を表します。

以来

  • 2.0.0

名前空間で定義済み

クラス: ビュー

定数の概要の削減

管理者 =

管理データベース名。

以来

  • 2.0.0

' admin '.freeze
コマンド =

データベースコマンドが操作する コレクション 。

以来

  • 2.0.0

'$cmd'.freeze
DEFAULT_OPTIONS =

デフォルトのデータベース オプション。

以来

  • 2.0.0

オプション::編集済み.新着情報(:database => 管理者).freeze
名前 =
非推奨。

データベース名フィールド定数。

以来

  • 2.1.0

' name '.freeze
DATABASE =

データベース 定数。

以来

  • 2.1.0

'databases'.freeze
名前空間 =

すべてのコレクション名を保持するコレクションの名前。

以来

  • 2.0.0

' system.namespaces '.freeze

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

クラスメソッドの概要を折りたたむ

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

再試行可能な に含まれるメソッド

#read_worker#select_server#write_worker

コンストラクターの詳細

#初期化(クライアント、名前、オプション = {}) =データベース

新しいデータベース オブジェクトをインスタンス化します。

例:

データベースをインスタンス化します。

Mongo::Database.new(client, :test)

パラメーター:

  • クライアント Mongo::Client

    ドライバー クライアント。

  • name ( stringSymbol )

    データベースの名前。

  • options ハッシュ (デフォルトは{}です)

    オプション。

オプション ハッシュ( options ):

  • :timeout_ms 整数

    操作のタイムアウト(ミリ秒単位)。 負でない整数である必要があります。 0 の明示的な値は無限を意味します。 デフォルト値が設定されていない場合、値はクライアントから継承されることを意味します。

次の値が発生します。

  • Mongo::Database::InvalidName

    名前が nil の場合。

以来

  • 2.0.0



362
363
364
365
366
367
368
369
370
# ファイル 'lib/mongo/ データベース.rb' 行 362

デフォルト 初期化(クライアント, name, options = {})
  発生 エラー::InvalidDatabaseName.新着情報 ただし、 name
  場合 Lint.有効か & & !(name.is_a?(文字列) || name.is_a?(シンボル))
    発生 "データベース名は string または記号にする必要があります: #{ name } "
  end
  @client = クライアント
  @name = name.to_s.freeze
  @options = options.freeze
end

インスタンス属性の詳細

#クライアント=クライアント(読み取り専用)

クライアント データベース クライアントを返します。

次の値を返します。

  • クライアント

    クライアント データベース クライアント。

以来

  • 2.0.0



62
63
64
# ファイル 'lib/mongo/ データベース.rb' 行 62

デフォルト クライアント
  @client
end

# name = string (読み取り専用)

データベースの名前を返します。

次の値を返します。

  • ( string )

    name データベースの名前。

以来

  • 2.0.0



65
66
67
# ファイル 'lib/mongo/ データベース.rb' 行 65

デフォルト name
  @name
end

オプション=ハッシュ(読み取り専用)

オプション オプションを返します。

次の値を返します。

  • ハッシュ

    options のオプション。

以来

  • 2.0.0



68
69
70
# ファイル 'lib/mongo/ データベース.rb' 行 68

デフォルト options
  @options
end

クラスメソッドの詳細

create (クライアント) =データベース

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

提供されたクライアント用のデータベースを作成し、クライアントの元のデータベースインスタンスと同じであることを避けたい場合に使用します。

例:

クライアントのデータベースを作成します。

Database.create(client)

パラメーター:

次の値を返します。

以来

  • 2.0.0



543
544
545
546
# ファイル 'lib/mongo/ データベース.rb' 行 543

デフォルト 自己.create(クライアント)
  database = Database.新着情報(クライアント, クライアント.options[:database], クライアント.options)
  クライアント.instance_variable_set(:@database, database)
end

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

# == (その他) === (その他) ==================================================================================

データベース オブジェクトが別のオブジェクトと等価であることを確認します。 名前が同じであるかどうかのみを確認します。

例:

データベースの等価性を確認します。

database == other

パラメーター:

  • その他 オブジェクト

    確認するオブジェクト。

次の値を返します。

  • truefalse

    オブジェクトが等しい場合。

以来

  • 2.0.0



94
95
96
97
# ファイル 'lib/mongo/ データベース.rb' 行 94

デフォルト ==(その他)
  return false ただし、 その他.is_a?(Database)
  name == その他.name
end

# [] (collection_name, options = {})[] = Mongo::Collection: コレクションも呼ばれます

指定された名前でこのデータベース内のコレクションを取得します。

例:

コレクションを取得します。

database[:users]

パラメーター:

  • collection_name ( stringSymbol )

    コレクションの名前。

  • options ハッシュ (デフォルトは{}です)

    コレクションのオプション。

次の値を返します。

以来

  • 2.0.0



110
111
112
113
114
115
# ファイル 'lib/mongo/ データベース.rb' 行 110

デフォルト [](collection_name, options = {})
  場合 options[:server_api]
    発生 ArgumentError, コレクション オブジェクトには、 : server_apiオプションは指定できません。クライアント レベルでのみ指定できます
  end
  コレクション.新着情報(自己, collection_name, options)
end

#集計(パイプライン、オプション = {}) = Collection::View::Aggregation

データベースで集計を実行します。

例:

集計を実行します。

collection.aggregate([ { "$listLocalSessions" => {} } ])

パラメーター:

  • パイプライン <Hash>配列 )

    集計パイプライン。

  • options ハッシュ (デフォルトは{}です)

    集計オプション。

オプション ハッシュ( options ):

  • :allow_disk_use truefalse

    集計中にディスクの使用が許可されている場合は、 を true に設定します。

  • :batch_size 整数

    バッチするごとに返すドキュメントの数。

  • :bypass_document_validation truefalse

    ドキュメント レベルの検証をスキップするかどうか。

  • :collation ハッシュ

    使用する照合。

  • :comment オブジェクト

    このコマンドに添付するユーザー指定のコメント。

  • :max_time_ms 整数

    クエリの実行を許可する最大時間(ミリ秒単位)。 このオプションは非推奨です。代わりに :timeout_ms を使用してください。

  • :timeout_ms 整数

    操作のタイムアウト(ミリ秒単位)。 負でない整数である必要があります。 0 の明示的な値は無限を意味します。 デフォルト値が設定されていない場合、データベースまたはクライアントから値が継承されることを意味します。

  • :hint string

    集計に使用するインデックス。

  • :session セッション

    使用するセッション。

次の値を返します。

以来

  • 2.10.0



450
451
452
# ファイル 'lib/mongo/ データベース.rb' 行 450

デフォルト 集計(パイプライン, options = {})
  ビュー.新着情報(自己, options).集計(パイプライン, options)
end

#clusterMongo::Server

クラスターからプライマリ サーバーを取得します。

次の値を返します。

  • Mongo::Server

    クラスターからプライマリ サーバーを取得します。

以来

  • 2.0.0



80
81
# ファイル 'lib/mongo/ データベース.rb' 行 80

def_delegator :cluster,
:next_primary

# collection_names (オプション = {})= Array[String ]<String>

注:

返されるコレクション名のセットは、リクエストを満たす MongoDB サーバーのバージョンによって異なります。

データベース内の非システム コレクションのすべての名前を取得します。

See https://mongodb.com/ja-jp/docs/manual/reference/command/listCollections/
for more information and usage.

パラメーター:

  • options ハッシュ (デフォルトは{}です)

オプション ハッシュ( options ):

  • : フィルター ハッシュ

    返されるコレクションのフィルター。

  • : authorized_collections truefalse

    true に設定し、nameOnly: true で使用すると、アクセス制御が強制されている場合に、必要な特権を持たないユーザーにもコマンドの実行を許可するフラグ

  • :comment オブジェクト

    このコマンドに添付するユーザー指定のコメント。

  • :timeout_ms 整数

    操作のタイムアウト(ミリ秒単位)。 負でない整数である必要があります。 0 の明示的な値は無限を意味します。 デフォルト値が設定されていない場合、データベースまたはクライアントから値が継承されることを意味します。

次の値を返します。

  • <String>配列未満

    コレクションの名前。

以来

  • 2.0.0



142
143
144
# ファイル 'lib/mongo/ データベース.rb' 行 142

デフォルト collection_names(options = {})
  ビュー.新着情報(自己, options).collection_names(options)
end

コレクションの数(オプション = {})= Array< Mongo::Collection >

注:

返されるコレクションのセットは、リクエストを満たす MongoDB サーバーのバージョンによって異なります。

このデータベースに属するすべての非システム コレクションを取得します。

See https://mongodb.com/ja-jp/docs/manual/reference/command/listCollections/
for more information and usage.

パラメーター:

  • options ハッシュ (デフォルトは{}です)

オプション ハッシュ( options ):

  • : フィルター ハッシュ

    返されるコレクションのフィルター。

  • : authorized_collections truefalse

    true に設定し、name_only: true で使用すると、アクセス制御が強制されている場合に、必要な特権を持たないユーザーにもコマンドの実行を許可するフラグです。

  • :comment オブジェクト

    このコマンドに添付するユーザー指定のコメント。

  • :timeout_ms 整数

    操作のタイムアウト(ミリ秒単位)。 負でない整数である必要があります。 0 の明示的な値は無限を意味します。 デフォルト値が設定されていない場合、データベースまたはクライアントから値が継承されることを意味します。

次の値を返します。

以来

  • 2.0.0



203
204
205
# ファイル 'lib/mongo/ データベース.rb' 行 203

デフォルト collections(options = {})
  collection_names(options).map { |name| コレクション(name) }
end

#コマンド(操作、opts = {}) = Mongo::Operation::Result

データベースで コマンドを実行します。

例:

コマンドを実行します。

database.command(:hello => 1)

パラメーター:

  • 操作 ハッシュ

    実行するコマンド。

  • ops ハッシュ (デフォルトは{}です)

    コマンド オプション。

  • options ハッシュ

    カスタマイズ可能なオプションのセット

オプション ハッシュ( opts ):

  • :read ハッシュ

    このコマンドの 読み込み設定(read preference) 。

  • :session セッション

    このコマンドに使用するセッション。

  • :execution_options ハッシュ

    このコマンドを実行するコードに渡すオプション。 これは内部オプションであり、変更される可能性があります。

    • :deserialize_as_bson [ ブール ] このコマンドへの応答を、可能な場合はネイティブBSON types Ruby型ではなく を使用して逆シリアル化するかどうか。

次の値を返します。

以来

  • 2.0.0



229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
# ファイル 'lib/mongo/ データベース.rb' 行 229

デフォルト コマンド(操作, ops = {})
  ops = ops.dup
  execution_opts = ops.削除(:execution_options) || {}

  txn_read_pref = 場合 ops[:session] & & ops[:session].in_transaction?
    ops[:session].txn_read_preference
  else
    nil
  end
  txn_read_pref ||= ops[:read] || ServerSelector::プライマリ
  Lint.validate_userscore_read_preference(txn_read_pref)
  セレクター = ServerSelector.得る(txn_read_pref)

  クライアント.with_session(ops) 行う |セッション|
    サーバー = セレクター.[select_server](クラスター, nil, セッション)
    op = 操作::コマンド.新着情報(
      : セレクター => 操作,
      :db_name => name,
      :read => セレクター,
      :session => セッション
    )

    op.実行する(サーバー,
      context: 操作::Context.新着情報(
        クライアント: クライアント,
        セッション: セッション,
        operation_timeouts: operation_timeouts(ops)
      ),
      次のオプションがあります。 execution_opts)
  end
end

#drop (オプション = {}) =結果

データベースとそれに関連するすべての情報を削除します。

例:

データベースの削除

database.drop

パラメーター:

  • options ハッシュ (デフォルトは{}です)

    操作のオプション。

オプション ハッシュ( options ):

  • :session セッション

    操作に使用するセッション。

  • :write_concern ハッシュ

    書込み保証(write concern) オプション。

  • :timeout_ms 整数

    操作のタイムアウト(ミリ秒単位)。 負でない整数である必要があります。 0 の明示的な値は無限を意味します。 デフォルト値が設定されていない場合、データベースまたはクライアントから値が継承されることを意味します。

次の値を返します。

  • 結果

    コマンドの結果です。

以来

  • 2.0.0



322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
# ファイル 'lib/mongo/ データベース.rb' 行 322

デフォルト drop(options = {})
  操作 = { :dropDatabase => 1 }
  クライアント.with_session(options) 行う |セッション|
    write_concern = 場合 options[:write_concern]
      WriteConcern.得る(options[:write_concern])
    else
      自己.write_concern
    end
    操作::DropDatabase.新着情報({
      セレクター: 操作,
      db_name: name,
      write_concern: write_concern,
      セッション: セッション
    }).実行する(
      next_primary(nil, セッション),
      context: 操作::Context.新着情報(
        クライアント: クライアント,
        セッション: セッション,
        operation_timeouts: operation_timeouts(options)
      )
    )
  end
end

#fs(options = {}) ⇒ Grid::FSBucket

このデータベースの Grid 「ファイルシステム」 を取得します。

パラメーター:

  • options ハッシュ (デフォルトは{}です)

    GridFS オプション。

オプション ハッシュ( options ):

  • :bucket_name string

    ファイルとチャンク コレクションのプレフィックス。

  • :chunk_size 整数

    デフォルトのチャンク サイズ を上書きします。

  • :fs_name string

    ファイルとチャンク コレクションのプレフィックス。

  • :read string

    読み込み設定 (read preference)。

  • :session セッション

    使用するセッション。

  • :write ハッシュ

    非推奨。 :write_concern オプションと同等。

  • :write_concern ハッシュ

    書込み保証(write concern) オプション。 :w => Integer|String、 :fsync => ブール値、 :j => ブール値 にすることができます。

次の値を返します。

以来

  • 2.0.0



404
405
406
# ファイル 'lib/mongo/ データベース.rb' 行 404

デフォルト fs(options = {})
  グリッド::FS バケット.新着情報(自己, options)
end

詳しくは、 を 検査しstring ます

データベースのpretty-printed string 検査を取得します。

例:

データベースを調べます。

database.inspect

次の値を返します。

  • ( string )

    データベース検査。

以来

  • 2.0.0



380
381
382
# ファイル 'lib/mongo/ データベース.rb' 行 380

デフォルト 検査する
  " #< Mongo::Database: 0 x #{ object_id } name= #{ name } > "
end

list_collections (オプション 番号 = {})= Array[Hash ]<Hash>

注:

返されるコレクションのセットと、コレクションごとの情報ハッシュのスキーマは、リクエストを満たす MongoDB サーバーのバージョンによって異なります。

データベース内のすべての非システム コレクションに関する情報を取得します。

See https://mongodb.com/ja-jp/docs/manual/reference/command/listCollections/
for more information and usage.

パラメーター:

  • options ハッシュ (デフォルトは{}です)

オプション ハッシュ( options ):

  • : フィルター ハッシュ

    返されるコレクションのフィルター。

  • :name_only truefalse

    コマンドがコレクションまたはビューの名前とタイプのみを返すか、名前とその他の情報の両方を返すかを示します。

  • : authorized_collections truefalse

    true に設定し、nameOnly: true で使用すると、アクセス制御が強制されている場合に、必要な特権を持たないユーザーにもコマンドの実行を許可するフラグ。

  • :comment オブジェクト

    このコマンドに添付するユーザー指定のコメント。

  • :timeout_ms 整数

    操作のタイムアウト(ミリ秒単位)。 負でない整数である必要があります。 0 の明示的な値は無限を意味します。 デフォルト値が設定されていない場合、データベースまたはクライアントから値が継承されることを意味します。

次の値を返します。

  • <Hash>配列 )

    データベース内の各コレクションに 1 つある、情報ハッシュの配列。

以来

  • 2.0.5



175
176
177
# ファイル 'lib/mongo/ データベース.rb' 行 175

デフォルト list_collections(options = {})
  ビュー.新着情報(自己, options).list_collections(options)
end

# operation_timeouts(opts) = ハッシュ

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

操作レベルで設定されている timeout_ms 値(存在する場合)、および/またはコレクション/データベース/クライアントレベルで設定されている timeout_ms 値(存在する場合)を返します。

次の値を返します。

  • ハッシュ

    操作レベルで設定されている timeout_ms 値(存在する場合)、および/またはコレクション/データベース/クライアントレベルで設定されている timeout_ms 値(存在する場合)。

以来

  • 2.0.0



560
561
562
563
564
565
566
567
568
569
# ファイル 'lib/mongo/ データベース.rb' 行 560

デフォルト operation_timeouts(ops)
  TODO: 2 つのタイムアウトが個別に必要な場合は、再評価する必要があります。
  {}.タップ 行う |結果|
    場合 ops[:timeout_ms].nil?
      結果[:in inherited_timeout_ms] = timeout_ms
    else
      結果[: operation_timeout_ms] = ops.削除(:timeout_ms)
    end
  end
end

# read_command (操作, opts = {{}) =ハッシュ

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

データベースで読み取りコマンドを実行し、必要に応じて読み取りを再試行します。

パラメーター:

  • 操作 ハッシュ

    実行するコマンド。

  • ops ハッシュ (デフォルトは{}です)

    コマンド オプション。

  • options ハッシュ

    カスタマイズ可能なオプションのセット

オプション ハッシュ( opts ):

  • :read ハッシュ

    このコマンドの 読み込み設定(read preference) 。

  • :session セッション

    このコマンドに使用するセッション。

  • :comment オブジェクト

    このコマンドに添付するユーザー指定のコメント。

次の値を返します。

  • ハッシュ

    コマンドの実行結果です。

以来

  • 2.0.0



277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
# ファイル 'lib/mongo/ データベース.rb' 行 277

デフォルト read_command(操作, ops = {})
  txn_read_pref = 場合 ops[:session] & & ops[:session].in_transaction?
    ops[:session].txn_read_preference
  else
    nil
  end
  txn_read_pref ||= ops[:read] || ServerSelector::プライマリ
  Lint.validate_userscore_read_preference(txn_read_pref)
  設定 = ServerSelector.得る(txn_read_pref)

  クライアント.with_session(ops) 行う |セッション|
    context = 操作::Context.新着情報(
      クライアント: クライアント,
      セッション: セッション,
      operation_timeouts: operation_timeouts(ops)
    )
    read_with_retry(セッション, 設定, context) 行う |サーバー|
      操作::コマンド.新着情報(
        セレクター: 操作.dup,
        db_name: name,
        read: 設定,
        セッション: セッション,
        comment: ops[:comment],
      ).実行する(サーバー, context: context)
    end
  end
end

#timeout_msInteger | nil

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

このデータベースまたは対応するクライアントの操作タイムアウトを返します。

次の値を返します。

  • (Integer | nil)

    このデータベースでは 、または対応するクライアントでは である操作タイムアウト。

以来

  • 2.0.0



552
553
554
# ファイル 'lib/mongo/ データベース.rb' 行 552

デフォルト timeout_ms
  options[:timeout_ms] || クライアント.timeout_ms
end

ユーザー数表示::ユーザー

このデータベースのユーザー ビューを取得します。

例:

ユーザー ビューを取得します。

database.users

次の値を返します。

  • 表示::ユーザー

    ユーザー ビュー。

以来

  • 2.0.0



416
417
418
# ファイル 'lib/mongo/ データベース.rb' 行 416

デフォルト ユーザー
  認証::user::ビュー.新着情報(自己)
end

多数表示 (パイプライン = []、オプション = {}) = ChangeStream

注:

変更ストリームでは「majority」の読み取り保証のみが許可されます。

注:

このヘルパー メソッドは、再開可能性をサポートするために、 $changeStream ステージで未加工の集計を実行するよりも推奨されます。

MongoDB サーバーのバージョン3.6以降、$changeStream" パイプライン ステージは集計フレームワークでサポートされています。 バージョン4.0以降、このステージでは、クライアントのデータベースで発生するすべての変更に対して通知が送信されるようリクエストできます。

例:

指定されたデータベースの変更通知を取得します。

database.watch([{ '$match' => { operationType: { '$in' => ['insert', 'replace'] } } }])

パラメーター:

  • パイプライン Array <Hash> (デフォルトは[]

    任意の追加のフィルター演算子。

  • options ハッシュ (デフォルトは{}です)

    変更ストリーム オプション。

オプション ハッシュ( options ):

  • : full_document string

    許可された値: nil、"default"、"updateLookup"、"whenAvalable"、"Required"

    デフォルトでは値は送信されません( nil)は、「デフォルト」と同等です。 デフォルトでは、部分的な更新の変更通知には、ドキュメントに対する変更を説明するデルタが含まれます。

    「updateLookup」に設定されている場合、部分的な更新の変更通知には、ドキュメントに対する変更を説明するデルタと、変更が発生した後一定時間後に変更されたドキュメント全体のコピーの両方が含まれます。

    「whenAvalable」に設定すると、このイベントの変更後のイメージが利用可能な場合、置換および更新される変更イベントのために変更されたドキュメントの変更後のイメージを返すように変更ストリームを構成します。

    「必須」に設定すると、「whenAvalable」と同じ動作をしますが、変更後のイメージが利用できない場合はエラーが発生します。

  • : full_document_Before_change string

    許可された値は: nil、"whenAvalable"、"Required"、"OFF" の場合、

    デフォルトでは値は送信されません( nil)は、「オフ」と同じです。

    「 whenAvalable 」に設定すると、 は、使用可能な場合、変更イベントの置換、アップデート、削除のために変更されたドキュメントの変更前のイメージを返すように変更ストリームを構成します。

    「必須」に設定すると、「whenAvalable」と同じ動作をしますが、変更前のイメージが利用できない場合はエラーが発生します。

  • :resume_ after BSON::Documentハッシュ

    新しい変更ストリームの論理的な開始点を指定します。

  • :max_await_time_ms 整数

    新しいドキュメントが変更ストリーム クエリを満たすまでにサーバーが待機する最大時間。

  • :batch_size 整数

    バッチするごとに返すドキュメントの数。

  • :collation BSON::Documentハッシュ

    使用する照合。

  • :session セッション

    使用するセッション。

  • :start_at_operation_time BSON::Timestamp

    指定されたタイムスタンプ後に発生した変更のみを返します。 サーバーに対して実行されたコマンドは、ここで使用できるクラスター時間を返します。 サーバー バージョン4.0 + によってのみ認識されます。

  • :comment オブジェクト

    このコマンドに添付するユーザー指定のコメント。

  • :show_expanded_events ブール値

    サーバーが変更ストリーム イベントの「展開」リストを送信できるようにします。 このフラグセットに含まれる追加のイベントのリストは、createIndexes、dropIndexes、変更、作成、shardCollection、reshardCollection、 refineCollectionShardKey です。

次の値を返します。

  • ChangeStream

    変更ストリーム オブジェクト。

以来

  • 2.6.0



519
520
521
522
523
524
525
526
527
528
# ファイル 'lib/mongo/ データベース.rb' 行 519

デフォルト 監視(パイプライン = [], options = {})
  view_options = options.dup
  view_options[: cursor_type] = :tailable_await 場合 options[:max_await_time_ms]

  mongo::コレクション::ビュー::ChangeStream.新着情報(
    mongo::コレクション::ビュー.新着情報(コレクション(" #{ COMMAND } .aggregate "), {}, view_options),
    パイプライン,
    mongo::コレクション::ビュー::ChangeStream::DATABASE,
    options)
end