ã¯ã©ã¹: Mongo::Database
- ç¶æ¿:
-
ãªãã¸ã§ã¯ã
- ãªãã¸ã§ã¯ã
- Mongo::Database
- 次ã«ããæ¡å¼µæ©è½ã
- 転éå¯è½
- 次ã®ãã¨ãå«ã¾ãã¾ãã
- å試è¡å¯è½
- å®ç¾©:
- lib/mongo/database.rb,
lib/mongo/database/view.rb
Overview
db ãµã¼ãã¼ä¸ã®ãã¼ã¿ãã¼ã¹ã¨ããã®ã¬ãã«ã§å®è¡å¯è½ãªæä½ã表ãã¾ãã
åå空éã§å®ç¾©æ¸ã¿
ã¯ã©ã¹: ãã¥ã¼
宿°ã®æ¦è¦ã®åæ¸
- 管çè
=
管çãã¼ã¿ãã¼ã¹åã
'管çè '- ã³ãã³ã =
ãã¼ã¿ãã¼ã¹ã³ãã³ããåä½ãããã³ã¬ã¯ã·ã§ã³ãã
'$cmd'- DEFAULT_OPTIONS =
ããã©ã«ãã®ãã¼ã¿ãã¼ã¹ ãªãã·ã§ã³ã
ãªãã·ã§ã³::ç·¨éæ¸ã¿.æ°çæ å ±(database: 管çè ).freeze
- åå =
鿍奍ã
ãã¼ã¿ãã¼ã¹åãã£ã¼ã«ã宿°ã
'name'- DATABASE =
ãã¼ã¿ãã¼ã¹ 宿°ã
'databases'- åå空é =
ãã¹ã¦ã®ã³ã¬ã¯ã·ã§ã³åãä¿æããã³ã¬ã¯ã·ã§ã³ã®ååã
'system.namespaces'
ã¤ã³ã¹ã¿ã³ã¹å±æ§ã®æ¦è¦ãæãããã
-
#client â Client
readOnly
ã¯ã©ã¤ã¢ã³ã ãã¼ã¿ãã¼ã¹ ã¯ã©ã¤ã¢ã³ãã
-
#name = string
readOnly
åå ãã¼ã¿ãã¼ã¹ã®ååã
-
#options â Hash
readOnly
ãªãã·ã§ã³ ã®ãªãã·ã§ã³ã
ã¯ã©ã¹ã¡ã½ããã®æ¦è¦ãæãããã
-
ã create ï¼ã¯ã©ã¤ã¢ã³ãï¼ = ãã¼ã¿ãã¼ã¹
private
æä¾ãããã¯ã©ã¤ã¢ã³ãç¨ã®ãã¼ã¿ãã¼ã¹ã使ãã¾ããããã¯ãã¯ã©ã¤ã¢ã³ãã®å ã®ãã¼ã¿ãã¼ã¹ã¤ã³ã¹ã¿ã³ã¹ã¨åãã§ãããã¨ãå¿ è¦ãªå ´åã«ä½¿ç¨ãã¾ãã
ã¤ã³ã¹ã¿ã³ã¹ ã¡ã½ããã®æ¦è¦ãæãããã
-
== (ãã®ä») ===(ãã®ä») ======================================
ãã¼ã¿ãã¼ã¹ ãªãã¸ã§ã¯ããå¥ã®ãªãã¸ã§ã¯ãã¨ç価ã§ãããã¨ã確èªãã¾ãã
-
# [] ï¼collection_nameããªãã·ã§ã³ = {}ï¼ = Mongo::Collection ï¼# ã³ã¬ã¯ã·ã§ã³ãï¼
æå®ãããååã§ãã®ãã¼ã¿ãã¼ã¹å ã®ã³ã¬ã¯ã·ã§ã³ãåå¾ãã¾ãã
-
#éè¨ï¼ãã¤ãã©ã¤ã³ããªãã·ã§ã³ = {}ï¼ = Collection::View::Aggregation
ãã¼ã¿ãã¼ã¹ã§éè¨ãå®è¡ãã¾ãã
-
#cluster â Mongo::Server
ã¯ã©ã¹ã¿ã¼ãããã©ã¤ã㪠ãµã¼ãã¼ãåå¾ãã¾ãã
-
# collection_names ï¼ãªãã·ã§ã³ = {}ï¼= Array[String]<String>
ãã¼ã¿ãã¼ã¹å ã®éã·ã¹ãã ã³ã¬ã¯ã·ã§ã³ã®ãã¹ã¦ã®ååãåå¾ãã¾ãã
-
ã³ã¬ã¯ã·ã§ã³ ã®æ°ï¼ãªãã·ã§ã³ = {}ï¼= Array[Mongo::Collection]<Mongo::Collection>
ãã®ãã¼ã¿ãã¼ã¹ã«å±ãããã¹ã¦ã®éã·ã¹ãã ã³ã¬ã¯ã·ã§ã³ãåå¾ãã¾ãã
-
#ã³ãã³ãï¼æä½ãopts = {}ï¼ = Mongo::Operation::Result
ãã¼ã¿ãã¼ã¹ã§ ã³ãã³ããå®è¡ãã¾ãã
-
#drop ï¼ãªãã·ã§ã³ = {}ï¼ = çµæ
ãã¼ã¿ãã¼ã¹ã¨ããã«é¢é£ãããã¹ã¦ã®æ å ±ãåé¤ãã¾ãã
-
#fs(options = {}) â Grid::FSBucket
ãã®ãã¼ã¿ãã¼ã¹ã® Grid "filesystem" ãåå¾ãã¾ãã
-
#åæåï¼ã¯ã©ã¤ã¢ã³ããååããªãã·ã§ã³ = {}ï¼ = ãã¼ã¿ãã¼ã¹
ã³ã³ã¹ãã©ã¯ã¿ã¼
æ°ãããã¼ã¿ãã¼ã¹ ãªãã¸ã§ã¯ããã¤ã³ã¹ã¿ã³ã¹åãã¾ãã
-
詳ããã¯ã ã æ¤æ»ã ã¾ãstring
ãã¼ã¿ãã¼ã¹ã®pretty-printed string æ¤æ»ãåå¾ãã¾ãã
-
list_collections ï¼ãªãã·ã§ã³ çªå· = {}ï¼= Array[Hash]<Hash>
ãã¼ã¿ãã¼ã¹å ã®ãã¹ã¦ã®éã·ã¹ãã ã³ã¬ã¯ã·ã§ã³ã«é¢ããæ å ±ãåå¾ãã¾ãã
-
# operation_timeoutsï¼optsï¼ = ããã·ã¥
private
æä½ã¬ãã«ã§è¨å®ããã¦ãã Timeout_ms å¤ï¼åå¨ããå ´åï¼ãããã³/ã¾ãã¯ã³ã¬ã¯ã·ã§ã³/ãã¼ã¿ãã¼ã¹/ã¯ã©ã¤ã¢ã³ãã¬ãã«ã§è¨å®ããã¦ãã timeout_ms å¤ï¼åå¨ããå ´åï¼ã
-
# read_command ï¼æä½, opts = {{}ï¼ = ããã·ã¥
private
ãã¼ã¿ãã¼ã¹ã§èªã¿åãã³ãã³ããå®è¡ããå¿ è¦ã«å¿ãã¦èªã¿åããå試è¡ãã¾ãã
-
#timeout_ms â Integer | nil
private
ãã®ãã¼ã¿ãã¼ã¹ã§ã¯ ãã¾ãã¯å¯¾å¿ããã¯ã©ã¤ã¢ã³ãã§ã¯ ã§ããæä½ã¿ã¤ã ã¢ã¦ãã
-
ã¦ã¼ã¶ã¼æ°ï½ 表示::ã¦ã¼ã¶ã¼
ãã®ãã¼ã¿ãã¼ã¹ã®ã¦ã¼ã¶ã¼ ãã¥ã¼ãåå¾ãã¾ãã
-
夿°è¡¨ç¤ºï¼ãã¤ãã©ã¤ã³ = []ããªãã·ã§ã³ = {}ï¼ = ChangeStream
ã¯ã©ã¤ã¢ã³ãã®ãã¼ã¿ãã¼ã¹ã§çºçãããã¹ã¦ã®å¤æ´ã«ã¤ãã¦éç¥ãéä¿¡ãããããã¦ã¼ã¶ã¼ããªã¯ã¨ã¹ãã§ããããã«ãã¾ãã
å試è¡å¯è½ãª ã«å«ã¾ããã¡ã½ãã
#read_workerã#select_serverã#with_overload_retryã#write_worker
ã³ã³ã¹ãã©ã¯ã¿ã¼ã®è©³ç´°
#åæåï¼ã¯ã©ã¤ã¢ã³ããååããªãã·ã§ã³ = {}ï¼ =ãã¼ã¿ãã¼ã¹
æ°ãããã¼ã¿ãã¼ã¹ ãªãã¸ã§ã¯ããã¤ã³ã¹ã¿ã³ã¹åãã¾ãã
365 366 367 368 369 370 371 372 373 374 |
# ãã¡ã¤ã« 'lib/mongo/ ãã¼ã¿ãã¼ã¹.rb' è¡ 365 ããã©ã«ã åæå(ã¯ã©ã¤ã¢ã³ã, name, = {}) çºç ã¨ã©ã¼::InvalidDatabaseName.æ°çæ å ± ãã ãã name å ´å Lint.æå¹ã & & !(name.is_a?(æåå) || name.is_a?(ã·ã³ãã«)) çºç "ãã¼ã¿ãã¼ã¹å㯠string ã¾ãã¯è¨å·ã«ããå¿ è¦ãããã¾ã: #{ name } " end @client = ã¯ã©ã¤ã¢ã³ã @name = name.to_s.freeze @options = .freeze end |
ã¤ã³ã¹ã¿ã³ã¹å±æ§ã®è©³ç´°
#ã¯ã©ã¤ã¢ã³ã=ã¯ã©ã¤ã¢ã³ã(èªã¿åãå°ç¨)
ã¯ã©ã¤ã¢ã³ã ãã¼ã¿ãã¼ã¹ ã¯ã©ã¤ã¢ã³ããè¿ãã¾ãã
60 61 62 |
# ãã¡ã¤ã« 'lib/mongo/ ãã¼ã¿ãã¼ã¹.rb' è¡ 60 ããã©ã«ã ã¯ã©ã¤ã¢ã³ã @client end |
# name = string ï¼èªã¿åãå°ç¨ï¼
ãã¼ã¿ãã¼ã¹ã®ååãè¿ãã¾ãã
63 64 65 |
# ãã¡ã¤ã« 'lib/mongo/ ãã¼ã¿ãã¼ã¹.rb' è¡ 63 ããã©ã«ã name @name end |
ãªãã·ã§ã³=ããã·ã¥ï¼èªã¿åãå°ç¨ï¼
ãªãã·ã§ã³ ãªãã·ã§ã³ãè¿ãã¾ãã
66 67 68 |
# ãã¡ã¤ã« 'lib/mongo/ ãã¼ã¿ãã¼ã¹.rb' è¡ 66 ããã©ã«ã @options end |
ã¯ã©ã¹ã¡ã½ããã®è©³ç´°
ã create ï¼ã¯ã©ã¤ã¢ã³ãï¼ =ãã¼ã¿ãã¼ã¹
ãã®ã¡ã½ããã¯ããã©ã¤ãã¼ã API ã®ä¸é¨ã§ãã ãã®ã¡ã½ããã¯å°æ¥åé¤ã¾ãã¯å¤æ´ãããå¯è½æ§ããããããå¯è½ãªéã使ç¨ããªãã§ãã ããã
æä¾ãããã¯ã©ã¤ã¢ã³ãç¨ã®ãã¼ã¿ãã¼ã¹ã使ãã¾ããããã¯ãã¯ã©ã¤ã¢ã³ãã®å ã®ãã¼ã¿ãã¼ã¹ã¤ã³ã¹ã¿ã³ã¹ã¨åãã§ãããã¨ãå¿ è¦ãªå ´åã«ä½¿ç¨ãã¾ãã
546 547 548 549 |
# ãã¡ã¤ã« 'lib/mongo/ ãã¼ã¿ãã¼ã¹.rb' è¡ 546 ããã©ã«ã èªå·±.create(ã¯ã©ã¤ã¢ã³ã) database = Database.æ°çæ å ±(ã¯ã©ã¤ã¢ã³ã, ã¯ã©ã¤ã¢ã³ã.[:database], ã¯ã©ã¤ã¢ã³ã.) ã¯ã©ã¤ã¢ã³ã.instance_variable_set(:@database, database) end |
ã¤ã³ã¹ã¿ã³ã¹ ã¡ã½ããã®è©³ç´°
# == (ãã®ä») === (ãã®ä») ==================================================================================
ãã¼ã¿ãã¼ã¹ ãªãã¸ã§ã¯ããå¥ã®ãªãã¸ã§ã¯ãã¨ç価ã§ãããã¨ã確èªãã¾ãã ååãåãã§ãããã©ããã®ã¿ã確èªãã¾ãã
93 94 95 96 97 |
# ãã¡ã¤ã« 'lib/mongo/ ãã¼ã¿ãã¼ã¹.rb' è¡ 93 ããã©ã«ã ==(ãã®ä») return false ãã ãã ãã®ä».is_a?(Database) name == ãã®ä».name end |
# [] ï¼collection_name, options = {}ï¼[] = Mongo::Collection: ã³ã¬ã¯ã·ã§ã³ã¨ãå¼ã°ãã¾ã
æå®ãããååã§ãã®ãã¼ã¿ãã¼ã¹å ã®ã³ã¬ã¯ã·ã§ã³ãåå¾ãã¾ãã
110 111 112 113 114 115 116 117 |
# ãã¡ã¤ã« 'lib/mongo/ ãã¼ã¿ãã¼ã¹.rb' è¡ 110 ããã©ã«ã [](collection_name, = {}) å ´å [:server_api] çºç ArgumentError, ã³ã¬ã¯ã·ã§ã³ ãªãã¸ã§ã¯ãã«ã¯ã : server_apiãªãã·ã§ã³ã¯æå®ã§ãã¾ãããã¯ã©ã¤ã¢ã³ã ã¬ãã«ã§ã®ã¿æå®ã§ãã¾ãã end ã³ã¬ã¯ã·ã§ã³.æ°çæ å ±(èªå·±, collection_name, ) end |
#éè¨ï¼ãã¤ãã©ã¤ã³ããªãã·ã§ã³ = {}ï¼ = Collection::View::Aggregation
ãã¼ã¿ãã¼ã¹ã§éè¨ãå®è¡ãã¾ãã
454 455 456 |
# ãã¡ã¤ã« 'lib/mongo/ ãã¼ã¿ãã¼ã¹.rb' è¡ 454 ããã©ã«ã éè¨(ãã¤ãã©ã¤ã³, = {}) ãã¥ã¼.æ°çæ å ±(èªå·±, ).éè¨(ãã¤ãã©ã¤ã³, ) end |
#cluster â Mongo::Server
ã¯ã©ã¹ã¿ã¼ãããã©ã¤ã㪠ãµã¼ãã¼ãåå¾ãã¾ãã
79 80 |
# ãã¡ã¤ã« 'lib/mongo/ ãã¼ã¿ãã¼ã¹.rb' è¡ 79 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.
144 145 146 |
# ãã¡ã¤ã« 'lib/mongo/ ãã¼ã¿ãã¼ã¹.rb' è¡ 144 ããã©ã«ã collection_names( = {}) ãã¥ã¼.æ°çæ å ±(èªå·±, ).collection_names() end |
ã³ã¬ã¯ã·ã§ã³ã®æ°ï¼ãªãã·ã§ã³ = {}ï¼= Array< Mongo::Collection >
è¿ãããã³ã¬ã¯ã·ã§ã³ã®ã»ããã¯ããªã¯ã¨ã¹ããæºãã MongoDB ãµã¼ãã¼ã®ãã¼ã¸ã§ã³ã«ãã£ã¦ç°ãªãã¾ãã
ãã®ãã¼ã¿ãã¼ã¹ã«å±ãããã¹ã¦ã®éã·ã¹ãã ã³ã¬ã¯ã·ã§ã³ãåå¾ãã¾ãã
See https://mongodb.com/ja-jp/docs/manual/reference/command/listCollections/
for more information and usage.
205 206 207 |
# ãã¡ã¤ã« 'lib/mongo/ ãã¼ã¿ãã¼ã¹.rb' è¡ 205 ããã©ã«ã collections( = {}) collection_names().map { |name| ã³ã¬ã¯ã·ã§ã³(name) } end |
#ã³ãã³ãï¼æä½ãopts = {}ï¼ = Mongo::Operation::Result
ãã¼ã¿ãã¼ã¹ã§ ã³ãã³ããå®è¡ãã¾ãã
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 260 |
# ãã¡ã¤ã« 'lib/mongo/ ãã¼ã¿ãã¼ã¹.rb' è¡ 231 ããã©ã«ã ã³ãã³ã(æä½, ops = {}) ops = ops.dup execution_opts = ops.åé¤(:execution_options) || {} txn_read_pref = (ops[:session].txn_read_preference å ´å ops[:session] & & ops[:session].in_transaction?) 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) ) op = æä½::ã³ãã³ã.æ°çæ å ±( ã»ã¬ã¯ã¿ã¼: æä½, db_name: name, read: ã»ã¬ã¯ã¿ã¼, ã»ãã·ã§ã³: ã»ãã·ã§ã³ ) retry_enabled = ã¯ã©ã¤ã¢ã³ã.[:retry_reads] != false & & ã¯ã©ã¤ã¢ã³ã.[:retry_writes] != false with_overload_retry(context: context, retry_enabled: retry_enabled) è¡ã ãµã¼ãã¼ = ã»ã¬ã¯ã¿ã¼.[select_server](ã¯ã©ã¹ã¿ã¼, nil, ã»ãã·ã§ã³) op.å®è¡ãã(ãµã¼ãã¼, context: context, 次ã®ãªãã·ã§ã³ãããã¾ãã execution_opts) end end end |
#drop ï¼ãªãã·ã§ã³ = {}ï¼ =çµæ
ãã¼ã¿ãã¼ã¹ã¨ããã«é¢é£ãããã¹ã¦ã®æ å ±ãåé¤ãã¾ãã
325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 |
# ãã¡ã¤ã« 'lib/mongo/ ãã¼ã¿ãã¼ã¹.rb' è¡ 325 ããã©ã«ã drop( = {}) æä½ = { dropDatabase: 1 } ã¯ã©ã¤ã¢ã³ã.with_session() è¡ã |ã»ãã·ã§ã³| write_concern = å ´å [:write_concern] WriteConcern.å¾ã([:write_concern]) else èªå·±.write_concern end æä½::DropDatabase.æ°çæ å ±({ ã»ã¬ã¯ã¿ã¼: æä½, db_name: name, write_concern: write_concern, ã»ãã·ã§ã³: ã»ãã·ã§ã³ }).å®è¡ãã( next_primary(nil, ã»ãã·ã§ã³), context: æä½::Context.æ°çæ å ±( ã¯ã©ã¤ã¢ã³ã: ã¯ã©ã¤ã¢ã³ã, ã»ãã·ã§ã³: ã»ãã·ã§ã³, operation_timeouts: operation_timeouts() ) ) end end |
#fs(options = {}) â Grid::FSBucket
ãã®ãã¼ã¿ãã¼ã¹ã® Grid "filesystem" ãåå¾ãã¾ãã
408 409 410 |
# ãã¡ã¤ã« 'lib/mongo/ ãã¼ã¿ãã¼ã¹.rb' è¡ 408 ããã©ã«ã fs( = {}) ã°ãªãã::FS ãã±ãã.æ°çæ å ±(èªå·±, ) end |
詳ããã¯ã ã æ¤æ»ãstring ã¾ã
ãã¼ã¿ãã¼ã¹ã®pretty-printed string æ¤æ»ãåå¾ãã¾ãã
384 385 386 |
# ãã¡ã¤ã« 'lib/mongo/ ãã¼ã¿ãã¼ã¹.rb' è¡ 384 ããã©ã«ã æ¤æ»ãã " #< 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.
177 178 179 |
# ãã¡ã¤ã« 'lib/mongo/ ãã¼ã¿ãã¼ã¹.rb' è¡ 177 ããã©ã«ã list_collections( = {}) ãã¥ã¼.æ°çæ å ±(èªå·±, ).list_collections() end |
# operation_timeoutsï¼optsï¼ = ããã·ã¥
ãã®ã¡ã½ããã¯ããã©ã¤ãã¼ã API ã®ä¸é¨ã§ãã ãã®ã¡ã½ããã¯å°æ¥åé¤ã¾ãã¯å¤æ´ãããå¯è½æ§ããããããå¯è½ãªéã使ç¨ããªãã§ãã ããã
æä½ã¬ãã«ã§è¨å®ããã¦ãã timeout_ms å¤ï¼åå¨ããå ´åï¼ãããã³/ã¾ãã¯ã³ã¬ã¯ã·ã§ã³/ãã¼ã¿ãã¼ã¹/ã¯ã©ã¤ã¢ã³ãã¬ãã«ã§è¨å®ããã¦ãã timeout_ms å¤ï¼åå¨ããå ´åï¼ãè¿ãã¾ãã
563 564 565 566 567 568 569 570 571 572 |
# ãã¡ã¤ã« 'lib/mongo/ ãã¼ã¿ãã¼ã¹.rb' è¡ 563 ããã©ã«ã 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 ã®ä¸é¨ã§ãã ãã®ã¡ã½ããã¯å°æ¥åé¤ã¾ãã¯å¤æ´ãããå¯è½æ§ããããããå¯è½ãªéã使ç¨ããªãã§ãã ããã
ãã¼ã¿ãã¼ã¹ã§èªã¿åãã³ãã³ããå®è¡ããå¿ è¦ã«å¿ãã¦èªã¿åããå試è¡ãã¾ãã
280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 |
# ãã¡ã¤ã« 'lib/mongo/ ãã¼ã¿ãã¼ã¹.rb' è¡ 280 ããã©ã«ã read_command(æä½, ops = {}) txn_read_pref = (ops[:session].txn_read_preference å ´å ops[:session] & & ops[:session].in_transaction?) 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) ) æä½ = æä½::ã³ãã³ã.æ°çæ å ±( ã»ã¬ã¯ã¿ã¼: æä½.dup, db_name: name, read: è¨å®, ã»ãã·ã§ã³: ã»ãã·ã§ã³, comment: ops[:comment] ) op_name = ops[:op_name] || 'ã³ãã³ã' 追跡.track_operation(æä½, context, op_name: op_name) è¡ã read_with_retry(ã»ãã·ã§ã³, è¨å®, context) è¡ã |ãµã¼ãã¼| æä½.å®è¡ãã(ãµã¼ãã¼, context: context) end end end end |
#timeout_ms â Integer | nil
ãã®ã¡ã½ããã¯ããã©ã¤ãã¼ã API ã®ä¸é¨ã§ãã ãã®ã¡ã½ããã¯å°æ¥åé¤ã¾ãã¯å¤æ´ãããå¯è½æ§ããããããå¯è½ãªéã使ç¨ããªãã§ãã ããã
ãã®ãã¼ã¿ãã¼ã¹ã¾ãã¯å¯¾å¿ããã¯ã©ã¤ã¢ã³ãã®æä½ã¿ã¤ã ã¢ã¦ããè¿ãã¾ãã
555 556 557 |
# ãã¡ã¤ã« 'lib/mongo/ ãã¼ã¿ãã¼ã¹.rb' è¡ 555 ããã©ã«ã timeout_ms [:timeout_ms] || ã¯ã©ã¤ã¢ã³ã.timeout_ms end |
ã¦ã¼ã¶ã¼æ°ï½è¡¨ç¤º::ã¦ã¼ã¶ã¼
ãã®ãã¼ã¿ãã¼ã¹ã®ã¦ã¼ã¶ã¼ ãã¥ã¼ãåå¾ãã¾ãã
420 421 422 |
# ãã¡ã¤ã« 'lib/mongo/ ãã¼ã¿ãã¼ã¹.rb' è¡ 420 ããã©ã«ã ã¦ã¼ã¶ã¼ èªè¨¼::user::ãã¥ã¼.æ°çæ å ±(èªå·±) end |
夿°è¡¨ç¤º ï¼ãã¤ãã©ã¤ã³ = []ããªãã·ã§ã³ = {}ï¼ = ChangeStream
夿´ã¹ããªã¼ã ã§ã¯ 'éåæ°' ã®èªã¿åãä¿è¨¼ (read concern)ã®ã¿ã許å¯ããã¾ãã
ãã®ãã«ãã¼ ã¡ã½ããã¯ãåéå¯è½æ§ããµãã¼ãããããã«ã $changeStream ã¹ãã¼ã¸ã§æªå å·¥ã®éè¨ãå®è¡ãããããæ¨å¥¨ããã¾ãã
ã¯ã©ã¤ã¢ã³ãã®ãã¼ã¿ãã¼ã¹ã§çºçãããã¹ã¦ã®å¤æ´ã«ã¤ãã¦éç¥ãéä¿¡ãããããã¦ã¼ã¶ã¼ããªã¯ã¨ã¹ãã§ããããã«ãã¾ãã
521 522 523 524 525 526 527 528 529 530 531 |
# ãã¡ã¤ã« 'lib/mongo/ ãã¼ã¿ãã¼ã¹.rb' è¡ 521 ããã©ã«ã ç£è¦(ãã¤ãã©ã¤ã³ = [], = {}) = .dup [: cursor_type] = :tailable_await å ´å [:max_await_time_ms] mongo::ã³ã¬ã¯ã·ã§ã³::ãã¥ã¼::ChangeStream.æ°çæ å ±( mongo::ã³ã¬ã¯ã·ã§ã³::ãã¥ã¼.æ°çæ å ±(ã³ã¬ã¯ã·ã§ã³(" #{ COMMAND } .aggregate "), {}, ), ãã¤ãã©ã¤ã³, mongo::ã³ã¬ã¯ã·ã§ã³::ãã¥ã¼::ChangeStream::DATABASE, ) end |