ã¯ã©ã¹: Mongo::Collection
- ç¶æ¿:
-
ãªãã¸ã§ã¯ã
- ãªãã¸ã§ã¯ã
- Mongo::Collection
- 次ã«ããæ¡å¼µæ©è½ã
- 転éå¯è½
- 次ã®ãã¨ãå«ã¾ãã¾ãã
- ãã«ãã¼ã QueryableEncryption ãå試è¡å¯è½ãª
- å®ç¾©:
- lib/mongo/ã³ã¬ã¯ã·ã§ã³.rb
ãlib/mongo/ã³ã¬ã¯ã·ã§ã³/view.rbãlib/mongo/ã³ã¬ã¯ã·ã§ã³/helpers.rbãlib/mongo/ã³ã¬ã¯ã·ã§ã³/view/iterable.rbãlib/mongo/ã³ã¬ã¯ã·ã§ã³/view/readable
rbãlib/mongo/ã³ã¬ã¯ã·ã§ã³/view/writable.rbãlib/mongo/ã³ã¬ã¯ã·ã§ã³/view/imutable.rbãlib/mongo/ã³ã¬ã¯ã·ã§ã³/view/map_reduce.rbãlib/mongo/ã³ã¬ã¯ã·ã§ã³/view/éè¨.rbã
lib/mongo/ã³ã¬ã¯ã·ã§ã³/view/explainable.rbãlib/mongo/ã³ã¬ã¯ã·ã§ã³/view/change_stream.rbãlib/mongo/ã³ã¬ã¯ã·ã§ã³/queryable_encryption.rbãlib/mongo/ã³ã¬ã¯ã·ã§ã³/view/Builder/map_reduce.rbãlib/
mongo/
ã³ã¬ã¯ã·ã§ã³/view/Builder/
éè¨.rbãlib/mongo/ã³ã¬ã¯ã·ã§ã³/view/ éè¨/behavior.rbãlib/mongo/ã³ã¬ã¯ã·ã§ã³/view/change_stream/retryable.rb
Overview
ãã¼ã¿ãã¼ã¹å ã®ã³ã¬ã¯ã·ã§ã³ã¨ããã®ã³ã¬ã¯ã·ã§ã³ã«ç´æ¥é©ç¨ã§ããæä½ã表ãã¾ãã
åå空éã§å®ç¾©æ¸ã¿
Modules: ãã«ãã¼ã QueryableEncryptionã¯ã©ã¹:ãã¥ã¼
宿°ã®æ¦è¦ã®åæ¸
- CAPED =
Capped ãªãã·ã§ã³ã
'Capped'- ns =
ns ãã£ã¼ã«ã宿°ã
'ns'- CHANGEABLE_OPTIONS =
æ°ããã³ã¬ã¯ã·ã§ã³ã¤ã³ã¹ã¿ã³ã¹ã§#withã¡ã½ããã使ç¨ãã¦æ´æ°ã§ãããªãã·ã§ã³ã
%i[èªã¿åã read_concern æ¸è¾¼ã¿ (write) write_concern].freeze
- CREATE_COLLECTION_OPTIONS =
ãã®å®æ°ã¯ããã©ã¤ãã¼ã API ã®ä¸é¨ã§ãã ãã®å®æ°ã¯å°æ¥åé¤ã¾ãã¯å¤æ´ãããå¯è½æ§ããããããå¯è½ãªéã使ç¨ããªãã§ãã ããã
ãªãã·ã§ã³ã¯ãã³ã¬ã¯ã·ã§ã³ä½æãªãã·ã§ã³ã夿ããã«ããããã¾ãã
{ time_series: :timeseries, expire_ after: :expireAfterSeconds, clustered_index: :clusteredIndex, change_stream_pre_and_post_images: :changeStreamPreAndPostImages, encryption_fields: :encryptedFields, validator: :validator, view_on: :viewOn }
QueryableEncryptionããå«ã¾ãã宿°
QueryableEncryption::QE 2 _MIN_WIRE_VERSION
ã¤ã³ã¹ã¿ã³ã¹å±æ§ã®æ¦è¦ãæãããã
-
#database â Mongo::Database
readOnly
ã³ã¬ã¯ã·ã§ã³ãåå¨ãããã¼ã¿ãã¼ã¹ã
-
#name = string
readOnly
ã³ã¬ã¯ã·ã§ã³ã®ååã
-
#options â Hash
readOnly
ã³ã¬ã¯ã·ã§ã³ãªãã·ã§ã³
ã¤ã³ã¹ã¿ã³ã¹ ã¡ã½ããã®æ¦è¦ãæãããã
-
# == (ãã®ä») ==(ãã®ä») ========= ================================================================== false
ã³ã¬ã¯ã·ã§ã³ãå¥ã®ãªãã¸ã§ã¯ãã¨çãããã©ããã確èªãã¾ãã
-
#éè¨ï¼ãã¤ãã©ã¤ã³ããªãã·ã§ã³ = {{}ï¼ â View::Aggregation
ã³ã¬ã¯ã·ã§ã³ã«å¯¾ãã¦éè¨ãå®è¡ãã¾ãã
-
# bulk_write ï¼ãªã¯ã¨ã¹ãããªãã·ã§ã³ = {}ï¼ = BulkWrite::Result
䏿¬æ¸ãè¾¼ã¿æä½ã®ããããå®è¡ãã¾ãã
-
ä¸éä»ããã = true | false
ã³ã¬ã¯ã·ã§ã³ã¯ä¸éä»ããï¼
-
ã«ã¦ã³ãï¼ãã£ã«ã¿ã¼ = nilããªãã·ã§ã³ = {}ï¼ = æ´æ°
鿍奍
鿍奍ã
代ããã« #count_documents ã¾ãã¯estimate_document_count_count ã使ç¨ãã¦ãã ããã ãã ãã#count_documents ã«åãæ¿ããã¨ãã«æ¬¡ã®æ¼ç®åãç½®ãæããå¿ è¦ããããã¨ã«æ³¨æãã¦ãã ããã
* $where should be replaced with $expr * $near should be replaced with $geoWithin with $center * $nearSphere should be replaced with $geoWithin with $centerSphere -
count_documents ï¼ãã£ã«ã¿ã¼ = {}ããªãã·ã§ã³ = {}ï¼ = æ´æ°
ã¯ã¨ãªã«ä¸è´ããããã¥ã¡ã³ãã®æ°ãåå¾ãã¾ãã
-
#create ï¼opts = {{}ï¼ = çµæ
ãã¼ã¿ãã¼ã¹ã«ã³ã¬ã¯ã·ã§ã³ãå¼·å¶çã«ä½æãã¾ãã
-
# delete_many ï¼ãã£ã«ã¿ã¼ = nilããªãã·ã§ã³ = {}ï¼ = çµæ
ã³ã¬ã¯ã·ã§ã³ããããã¥ã¡ã³ããåé¤ãã¾ãã
-
# delete_one ï¼ãã£ã«ã¿ã¼ = nilããªãã·ã§ã³ = {}ï¼ = çµæ
ã³ã¬ã¯ã·ã§ã³ããããã¥ã¡ã³ããåé¤ãã¾ãã
-
åå¥ã®æ°ï¼ãã£ã¼ã«ãåããã£ã«ã¿ã¼ = nilããªãã·ã§ã³ = {{}ï¼ = é
å <Object>
ç¹å®ã®ãã£ã¼ã«ãã®åå¥ã®å¤ã®ãªã¹ããåå¾ãã¾ãã
-
#drop ï¼ops = {}ï¼ = çµæ
ã³ã¬ã¯ã·ã§ã³ãåé¤ãã¾ãã
-
#estimate_document_count ï¼ãªãã·ã§ã³ = {}ï¼ = æ´æ°
ã³ã¬ã¯ã·ã§ã³ã®ã¡ã¿ãã¼ã¿ã使ç¨ãã¦ãã³ã¬ã¯ã·ã§ã³å ã®ããã¥ã¡ã³ãæ°ã®æ¨å®å¤ãåå¾ãã¾ãã
-
# find ï¼ãã£ã«ã¿ã¼ = nilããªãã·ã§ã³ = {}ï¼ = CollectionView
ã³ã¬ã¯ã·ã§ã³å ã®ããã¥ã¡ã³ããæ¤ç´¢ãã¾ãã
-
# find_one_and_delete ï¼ãã£ã«ã¿ã¼ããªãã·ã§ã³ = {}ï¼ = BSON::Document ?
findAndModify çµç±ã§ãã¼ã¿ãã¼ã¹å ã®åä¸ã®ããã¥ã¡ã³ããæ¤ç´¢ããåé¤ããå ã®ããã¥ã¡ã³ããè¿ãã¾ãã
-
# find_one_and_replace ï¼ãã£ã«ã¿ã¼ãç½®æããªãã·ã§ã³ = {}ï¼ = BSON::Document
1 ã¤ã®ããã¥ã¡ã³ããæ¤ç´¢ãã¦ç½®ãæããç¹ã«æå®ããã¦ããªãéããå ã®ããã¥ã¡ã³ããè¿ãã¾ãã
-
#find_one_and_update(filter, update, options = {}) â BSON::Document
findAndModify çµç±ã§åä¸ã®ããã¥ã¡ã³ããæ¤ç´¢ãããã®ããã¥ã¡ã³ããæ´æ°ããã¨ãç¹ã«æå®ããã¦ããªãéããå ã®ããã¥ã¡ã³ããè¿ãã¾ãã
-
#indexes(options = {}) â Index::View
ãã®ã³ã¬ã¯ã·ã§ã³ã®ãã¹ã¦ã®ã¤ã³ããã¯ã¹ã®ãã¥ã¼ãåå¾ãã¾ãã
-
#åæåï¼ãã¼ã¿ãã¼ã¹ãååããªãã·ã§ã³ = {}ï¼ = ã³ã¬ã¯ã·ã§ã³ = ã³ã¬ã¯ã·ã§ã³
ã³ã³ã¹ãã©ã¯ã¿ã¼
æ°ãã ã³ã¬ã¯ã·ã§ã³ãã¤ã³ã¹ã¿ã³ã¹åãã¾ãã
-
# insert_many ï¼ããã¥ã¡ã³ãããªãã·ã§ã³ = {}ï¼ = çµæ
æä¾ãããããã¥ã¡ã³ãã ã³ã¬ã¯ã·ã§ã³ã«æ¿å ¥ãã¾ãã
-
# insert_one ï¼ããã¥ã¡ã³ããopts = {}) = çµæ
ã³ã¬ã¯ã·ã§ã³ã«åä¸ã®ããã¥ã¡ã³ããæ¿å ¥ãã¾ãã
-
詳ããã¯ã ã æ¤æ»ã ã¾ãstring
ã³ã¬ã¯ã·ã§ã³ã®pretty-printed string æ¤æ»ãåå¾ãã¾ãã
-
#åå空é= string
ã³ã¬ã¯ã·ã§ã³ã®å®å ¨ä¿®é£¾åå空éãåå¾ãã¾ãã
-
# operation_timeoutsï¼opts = {}ï¼ = ããã·ã¥
private
æä½ã¬ãã«ã§è¨å®ããã¦ãã Timeout_ms å¤ï¼åå¨ããå ´åï¼ãããã³/ã¾ãã¯ã³ã¬ã¯ã·ã§ã³/ãã¼ã¿ãã¼ã¹/ã¯ã©ã¤ã¢ã³ãã¬ãã«ã§è¨å®ããã¦ãã timeout_ms å¤ï¼åå¨ããå ´åï¼ã
-
# parallel_scan ï¼cursor_countããªãã·ã§ã³ = {}ï¼= Array=========================================================<Cursor>
ã³ã¬ã¯ã·ã§ã³ ãã¥ã¼ã§ä¸¦åã¹ãã£ã³ãå®è¡ãã¾ãã
-
#read_concern =ããã·ã¥
ãã®ã³ã¬ã¯ã·ã§ã³ ã¤ã³ã¹ã¿ã³ã¹ã®æå¹ãªèªã¿åãä¿è¨¼ãåå¾ãã¾ãã
-
# read_preference =ããã·ã¥
ãã®ã³ã¬ã¯ã·ã§ã³ã®æå¹ãª èªã¿è¾¼ã¿è¨å®ï¼read preferenceï¼ ãåå¾ãã¾ãã
-
# replace_one ï¼ãã£ã«ã¿ã¼, ç½®æ, ãªãã·ã§ã³ = {}ï¼ = çµæ
ã³ã¬ã¯ã·ã§ã³å ã®åä¸ã®ããã¥ã¡ã³ããæ°ããããã¥ã¡ã³ãã«ç½®ãæãã¾ãã
-
Search_indexsï¼ãªãã·ã§ã³ = {}ï¼= SearchIndex::View
ãã®ã³ã¬ã¯ã·ã§ã³ã®ãã¹ã¦ã®æ¤ç´¢ã¤ã³ããã¯ã¹ã®ãã¥ã¼ãåå¾ãã¾ãã
-
# server_selector = Mongo::ServerSelector
ãã®ã³ã¬ã¯ã·ã§ã³ã®ãµã¼ãã¼ ã»ã¬ã¯ã¿ã¼ãåå¾ãã¾ãã
-
ã·ã¹ãã _ã³ã¬ã¯ã·ã§ã³? = ãã¼ã«å¤
private
ã³ã¬ã¯ã·ã§ã³ãã·ã¹ãã ã³ã¬ã¯ã·ã§ã³ã§ãããã©ããã
-
#timeout_ms â Integer | nil
private
ãã®ãã¼ã¿ãã¼ã¹ã§ã¯ ãã¾ãã¯å¯¾å¿ããã¯ã©ã¤ã¢ã³ãã§ã¯ ã§ããæä½ã¿ã¤ã ã¢ã¦ãã
-
#update_many(filter, update, options = {}) â Result
ã³ã¬ã¯ã·ã§ã³å ã®ããã¥ã¡ã³ããæ´æ°ãã¾ãã
-
#update_one(filter, update, options = {}) â Result
ã³ã¬ã¯ã·ã§ã³å ã® 1 ã¤ã®ããã¥ã¡ã³ããæ´æ°ãã¾ãã
-
夿°è¡¨ç¤ºï¼ãã¤ãã©ã¤ã³ = []ããªãã·ã§ã³ = {}ï¼ = ChangeStream
ã¦ã¼ã¶ã¼ãç¹å®ã®ã³ã¬ã¯ã·ã§ã³ã«å¯¾ãããã¹ã¦ã®å¤æ´ã«å¯¾ãã¦éç¥ãéä¿¡ãããããªã¯ã¨ã¹ãã§ããããã«ãã¾ãã
-
(new_options)ã使ç¨ãã# Mongo::Collection
æ°ãã ã³ã¬ã¯ã·ã§ã³ ã¤ã³ã¹ã¿ã³ã¹ã
-
#write_concern = Mongo::WriteConcern
ãã®ã³ã¬ã¯ã·ã§ã³ã®æå¹ãªæ¸è¾¼ã¿ä¿è¨¼ (write concern) ãåå¾ãã¾ãã
-
#write_concern_with_session ï¼ã»ãã·ã§ã³ï¼=Mongo::WriteConcern
private
ãã®ã³ã¬ã¯ã·ã§ã³ã«å¯¾ããæä½ã«ä½¿ç¨ããæ¸è¾¼ã¿ä¿è¨¼ (write concern) ãåå¾ãã¾ãï¼ã»ãã·ã§ã³ãæå®ãããå ´åï¼ã
ãã«ãã¼ã«å«ã¾ããã¡ã½ãã
QueryableEncryptionã«å«ã¾ããã¡ã½ãã
#maybe_create_qe_collections ã #maybe_drop_emm_collections
å試è¡å¯è½ãª ã«å«ã¾ããã¡ã½ãã
#read_workerã#select_serverã#with_overload_retryã#write_worker
ã³ã³ã¹ãã©ã¯ã¿ã¼ã®è©³ç´°
#åæåï¼ãã¼ã¿ãã¼ã¹ãååããªãã·ã§ã³ = {}ï¼ = ã³ã¬ã¯ã·ã§ã³ =ã³ã¬ã¯ã·ã§ã³
æ°ãã ã³ã¬ã¯ã·ã§ã³ãã¤ã³ã¹ã¿ã³ã¹åãã¾ãã
163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 163 ããã©ã«ã åæå(database, name, = {}) çºç ã¨ã©ã¼::InvalidCollectionName.æ°çæ å ± ãã ãã name å ´å [:write] & & [:write_concern] & & [:write] != [:write_concern] çºç ArgumentError, " :write 㨠:write_concern ã®ä¸¡æ¹ãæå®ããã¦ããå ´åããããã¯åä¸ã§ããå¿ è¦ãããã¾ãã #{ . explain } " end @database = database @name = name.to_s.freeze @options = .dup @timeout_ms = .åé¤(:timeout_ms) WriteConcernãªãã¸ã§ã¯ãã®ãµãã¼ã ã§ã¯ã@options[:write_concern].is_a?(WriteConcern::Base) ã®å ´å ##ã¤ã³ã¹ã¿ã³ã¹ããã£ãã·ã¥ãã¦ãä¸å¿ è¦ã«åæ§ç¯ãããªãããã«ãã¾ãã # @write_concern = @options[:write_concern] #@options[:write_concern] = @write_concern.options # end @options.freeze end |
ã¤ã³ã¹ã¿ã³ã¹å±æ§ã®è©³ç´°
#database â Mongo::Database (readonly)
ã³ã¬ã¯ã·ã§ã³ãåå¨ãããã¼ã¿ãã¼ã¹ãè¿ãã¾ãã
44 45 46 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 44 ããã©ã«ã database @database end |
# name = string ï¼èªã¿åãå°ç¨ï¼
ã³ã¬ã¯ã·ã§ã³ã®ååãè¿ãã¾ãã
47 48 49 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 47 ããã©ã«ã name @name end |
ãªãã·ã§ã³=ããã·ã¥ï¼èªã¿åãå°ç¨ï¼
ã³ã¬ã¯ã·ã§ã³ãªãã·ã§ã³ãè¿ãã¾ãã
50 51 52 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 50 ããã©ã«ã @options end |
ã¤ã³ã¹ã¿ã³ã¹ ã¡ã½ããã®è©³ç´°
# == (ãã®ä») ==(ãã®ä») ========= ================================================================== false
ã³ã¬ã¯ã·ã§ã³ãå¥ã®ãªãã¸ã§ã¯ãã¨çãããã©ããã確èªãã¾ãã ååã¨ãã¼ã¿ãã¼ã¹ãç価ã§ãããã©ããã確èªãã¾ãã
89 90 91 92 93 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 89 ããã©ã«ã ==(ãã®ä») return false ãã ãã ãã®ä».is_a?(ã³ã¬ã¯ã·ã§ã³) name == ãã®ä».name & & database == ãã®ä».database & & == ãã®ä». end |
#éè¨ï¼ãã¤ãã©ã¤ã³ããªãã·ã§ã³ = {{}ï¼ â View::Aggregation
ã³ã¬ã¯ã·ã§ã³ã«å¯¾ãã¦éè¨ãå®è¡ãã¾ãã
567 568 569 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 567 ããã©ã«ã éè¨(ãã¤ãã©ã¤ã³, = {}) ãã¥ã¼.æ°çæ å ±(èªå·±, {}, ).éè¨(ãã¤ãã©ã¤ã³, ) end |
# bulk_write ï¼ãªã¯ã¨ã¹ãããªãã·ã§ã³ = {}ï¼ = BulkWrite::Result
䏿¬æ¸ãè¾¼ã¿æä½ã®ããããå®è¡ãã¾ãã
939 940 941 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 939 ããã©ã«ã bulk_write(ãªã¯ã¨ã¹ã, = {}) 䏿¬æ¸è¾¼ã¿ (write).æ°çæ å ±(èªå·±, ãªã¯ã¨ã¹ã, ).å®è¡ãã end |
ä¸éä»ããã = true | false
ã³ã¬ã¯ã·ã§ã³ã¯ä¸éä»ããï¼
317 318 319 320 321 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 317 ããã©ã«ã ä¸éä»ãã database.list_collections(ãã£ã«ã¿ã¼: { name: name }) .æåã« &.dig('options', CAPED) || false end |
ã«ã¦ã³ãï¼ãã£ã«ã¿ã¼ = nilããªãã·ã§ã³ = {}ï¼ =æ´æ°
代ããã« #count_documents ã¾ãã¯estimate_document_count_count ã使ç¨ãã¦ãã ããã ãã ãã#count_documents ã«åãæ¿ããã¨ãã«æ¬¡ã®æ¼ç®åãç½®ãæããå¿ è¦ããããã¨ã«æ³¨æãã¦ãã ããã
* $where should be replaced with $expr
* $near should be replaced with $geoWithin with $center
* $nearSphere should be replaced with $geoWithin with $centerSphereã³ã¬ã¯ã·ã§ã³å ã®ä¸è´ããããã¥ã¡ã³ãã®æ¨å®æ°ãåå¾ãã¾ãã
681 682 683 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 681 ããã©ã«ã count(ãã£ã«ã¿ã¼ = nil, = {}) ãã¥ã¼.æ°çæ å ±(èªå·±, ãã£ã«ã¿ã¼ || {}, ).count() end |
count_documents ï¼ãã£ã«ã¿ã¼ = {}ããªãã·ã§ã³ = {}ï¼ =æ´æ°
ã¯ã¨ãªã«ä¸è´ããããã¥ã¡ã³ãã®æ°ãåå¾ãã¾ãã éæ¨å¥¨ã® ã«ã¦ã³ã ã¡ã½ããã¨ã¯ç°ãªããæ¨å®å¤ã§ã¯ãªãããã£ã«ã¿ã¼ã«ä¸è´ããããã¥ã¡ã³ãã®æ£ç¢ºãªæ°ï¼ã¾ãã¯ãã£ã«ã¿ã¼ãæä¾ããã¦ããªãå ´åã¯ãã³ã¬ã¯ã·ã§ã³å ã®ããã¥ã¡ã³ãã®æ£ç¢ºãªæ°ï¼ãè¿ããã¾ãã
#estimated_document_count ã使ç¨ãã¦ãã³ã¬ã¯ã·ã§ã³ã®ã¡ã¿ãã¼ã¿ã使ç¨ãã¦ãã³ã¬ã¯ã·ã§ã³å ã®ããã¥ã¡ã³ãæ°ã®æ¨å®å¤ãåå¾ãã¾ãã
715 716 717 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 715 ããã©ã«ã count_documents(ãã£ã«ã¿ã¼ = {}, = {}) ãã¥ã¼.æ°çæ å ±(èªå·±, ãã£ã«ã¿ã¼, ).count_documents() end |
#create ï¼opts = {{}ï¼ =çµæ
ãã¼ã¿ãã¼ã¹ã«ã³ã¬ã¯ã·ã§ã³ãå¼·å¶çã«ä½æãã¾ãã
378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 378 ããã©ã«ã create(ops = {}) # èªã¿åããªãã·ã§ã³ã渡ãã¦ã³ãã³ãã使ããã¨ãã³ãã³ãã䏿ããã¾ãã # èªã¿åããªãã·ã§ã³ããã£ã«ã¿ãªã³ã°ã§é¤å¤ãã¾ãã ã»ãã·ã§ã³ãããã§ã¯é¤å¤ããã¾ã 㯠with_session ã®å¼ã³åºãã§ä½¿ç¨ãããæ¬¡ã®ä¸é¨ã§ã¯ãªãå¿ è¦ãããã¾ã # æä½ã æä½ã«æ¸¡ãããã¨ãBSON ã¯å¤±æãã¾ã # ã·ãªã¢ã«åã TODO ã¯ã次ã®å ´åã«èªã¿åããªãã·ã§ã³ã®ãªã¹ããã¯ã©ã¹ã¬ãã«ã®å®æ°ã«é ç½®ãã¾ã # ã§ã¯ããããã®å®å ¨ãªã»ãããä½ã§ãããããããã¾ãã = ããã·ã¥[èªå·±..merge(ops).æå¦ è¡ã |ãã¼, _value| %w[èªã¿åã read_preference read_concern ã»ãã·ã§ã³].include?(ãã¼.to_s) end] Ruby ãªãã·ã§ã³ããµã¼ãã¼ ã¹ã¿ã¤ã«ã«å¤æããã CREATE_COLLECTION_OPTIONS.å è¡ã |Ruby_key, server_key| [server_key] = .åé¤(Ruby_key) å ´å .key?(Ruby_key) end æä½ = { create: name }.merge() æä½.åé¤(:write) æä½.åé¤(:write_concern) ã¯ã©ã¤ã¢ã³ã.éä¿¡(:with_session, ops) è¡ã |ã»ãã·ã§ã³| write_concern = å ´å ops[:write_concern] WriteConcern.å¾ã(ops[:write_concern]) else èªå·±.write_concern end context = æä½::Context.æ°çæ å ±( ã¯ã©ã¤ã¢ã³ã: ã¯ã©ã¤ã¢ã³ã, ã»ãã·ã§ã³: ã»ãã·ã§ã³ ) æä½ = æä½::使.æ°çæ å ±( ã»ã¬ã¯ã¿ã¼: æä½, db_name: database.name, write_concern: write_concern, ã»ãã·ã§ã³: ã»ãã·ã§ã³, # ãããã¯ã³ã¬ã¯ã·ã§ã³ ãªãã·ã§ã³ã§ãããç §åã¯æ¬¡ã§ã¯ãªããã¨ã«æ³¨æãã¦ãã ãã: create ã¡ã½ããã«æ¸¡ããããªãã·ã§ã³ããåå¾ããã#ã collation: [:collation] || [ãç §åã], validator: [:validator] ) 追跡.track_operation(æä½, context, op_name: 'createCollection') è¡ã Max_create_qe_collections(ops[:encrypted_fields], ã¯ã©ã¤ã¢ã³ã, ã»ãã·ã§ã³) è¡ã |encryption_fields| æä½.encryption_fields = encryption_fields æä½.å®è¡ãã( next_primary(nil, ã»ãã·ã§ã³), context: context ) end end end end |
# delete_many ï¼ãã£ã«ã¿ã¼ = nilããªãã·ã§ã³ = {}ï¼ =çµæ
ã³ã¬ã¯ã·ã§ã³ããããã¥ã¡ã³ããåé¤ãã¾ãã
991 992 993 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 991 ããã©ã«ã delete_many(ãã£ã«ã¿ã¼ = nil, = {}) find(ãã£ã«ã¿ã¼, ).delete_many() end |
# delete_one ï¼ãã£ã«ã¿ã¼ = nilããªãã·ã§ã³ = {}ï¼ =çµæ
ã³ã¬ã¯ã·ã§ã³ããããã¥ã¡ã³ããåé¤ãã¾ãã
965 966 967 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 965 ããã©ã«ã delete_one(ãã£ã«ã¿ã¼ = nil, = {}) find(ãã£ã«ã¿ã¼, ).delete_one() end |
åå¥ã®æ°ï¼ãã£ã¼ã«ãåããã£ã«ã¿ã¼ = nilããªãã·ã§ã³ = {{}ï¼ =é å <Object>
ç¹å®ã®ãã£ã¼ã«ãã®åå¥ã®å¤ã®ãªã¹ããåå¾ãã¾ãã
767 768 769 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 767 ããã©ã«ã distinct(field_name, ãã£ã«ã¿ã¼ = nil, = {}) ãã¥ã¼.æ°çæ å ±(èªå·±, ãã£ã«ã¿ã¼ || {}, ).distinct(field_name, ) end |
#drop ï¼ops = {}ï¼ =çµæ
ã³ã¬ã¯ã·ã§ã³ãåå¨ããªãå ´åã«è¿ãããã¨ã©ã¼ã¯é表示ã«ãªãã¾ãã
ã³ã¬ã¯ã·ã§ã³ãåé¤ãã¾ãã ã¾ããã³ã¬ã¯ã·ã§ã³ã«é¢é£ä»ãããã¦ãããã¹ã¦ã®ã¤ã³ããã¯ã¹ã¨ãé¢é£ä»ãããã¦ããQueryable Encryptionã³ã¬ã¯ã·ã§ã³ãåé¤ããã¾ãã
451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 451 ããã©ã«ã drop(ops = {}) ã¯ã©ã¤ã¢ã³ã.with_session(ops) è¡ã |ã»ãã·ã§ã³| context = æä½::Context.æ°çæ å ±( ã¯ã©ã¤ã¢ã³ã: ã¯ã©ã¤ã¢ã³ã, ã»ãã·ã§ã³: ã»ãã·ã§ã³, operation_timeouts: operation_timeouts(ops) ) temp_write_concern = write_concern write_concern = å ´å ops[:write_concern] WriteConcern.å¾ã(ops[:write_concern]) else temp_write_concern end æä½ = æä½::drop.æ°çæ å ±({ ã»ã¬ã¯ã¿ã¼: { drop: name }, db_name: database.name, write_concern: write_concern, ã»ãã·ã§ã³: ã»ãã·ã§ã³, }) 追跡.track_operation(æä½, context, op_name: 'dropCollection') è¡ã Max_drop_em_collections(ops[:encrypted_fields], ã¯ã©ã¤ã¢ã³ã, ã»ãã·ã§ã³) è¡ã do_drop(æä½, ã»ãã·ã§ã³, context) end end end end |
#estimate_document_count ï¼ãªãã·ã§ã³ = {}ï¼ =æ´æ°
ã³ã¬ã¯ã·ã§ã³ã®ã¡ã¿ãã¼ã¿ã使ç¨ãã¦ãã³ã¬ã¯ã·ã§ã³å ã®ããã¥ã¡ã³ãæ°ã®æ¨å®å¤ãåå¾ãã¾ãã
ã³ã¬ã¯ã·ã§ã³å ã®ããã¥ã¡ã³ãã®æ£ç¢ºãªæ°ãåå¾ããã«ã¯ã#count_documents ã使ç¨ãããããã£ã«ã¿ã¼ã«ä¸è´ããããã¥ã¡ã³ããã«ã¦ã³ãããã«ã¯ã #count_documents
740 741 742 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 740 ããã©ã«ã Estimated_document_count( = {}) ãã¥ã¼.æ°çæ å ±(èªå·±, {}, ).Estimated_document_count() end |
# find ï¼ãã£ã«ã¿ã¼ = nilããªãã·ã§ã³ = {}ï¼ = CollectionView
ã³ã¬ã¯ã·ã§ã³å ã®ããã¥ã¡ã³ããæ¤ç´¢ãã¾ãã
531 532 533 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 531 ããã©ã«ã find(ãã£ã«ã¿ã¼ = nil, = {}) ãã¥ã¼.æ°çæ å ±(èªå·±, ãã£ã«ã¿ã¼ || {}, ) end |
# find_one_and_delete ï¼ãã£ã«ã¿ã¼ããªãã·ã§ã³ = {}ï¼ = BSON::Document ?
findAndModify çµç±ã§ãã¼ã¿ãã¼ã¹å ã®åä¸ã®ããã¥ã¡ã³ããæ¤ç´¢ããåé¤ããå ã®ããã¥ã¡ã³ããè¿ãã¾ãã
1164 1165 1166 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 1164 ããã©ã«ã find_one_and_delete(ãã£ã«ã¿ã¼, = {}) find(ãã£ã«ã¿ã¼, ).find_one_and_delete() end |
# find_one_and_replace ï¼ãã£ã«ã¿ã¼ãç½®æããªãã·ã§ã³ = {}ï¼ = BSON::Document
1 ã¤ã®ããã¥ã¡ã³ããæ¤ç´¢ãã¦ç½®ãæããç¹ã«æå®ããã¦ããªãéããå ã®ããã¥ã¡ã³ããè¿ãã¾ãã
1250 1251 1252 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 1250 ããã©ã«ã find_one_and_replace(ãã£ã«ã¿ã¼, replacement, = {}) find(ãã£ã«ã¿ã¼, ).find_one_and_update(replacement, ) end |
#find_one_and_update(filter, update, options = {}) â BSON::Document
findAndModify çµç±ã§åä¸ã®ããã¥ã¡ã³ããæ¤ç´¢ãããã®ããã¥ã¡ã³ããæ´æ°ããã¨ãç¹ã«æå®ããã¦ããªãéããå ã®ããã¥ã¡ã³ããè¿ãã¾ãã
1208 1209 1210 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 1208 ããã©ã«ã find_one_and_update(ãã£ã«ã¿ã¼, update, = {}) find(ãã£ã«ã¿ã¼, ).find_one_and_update(update, ) end |
#indexes(options = {}) â Index::View
ãã®ã³ã¬ã¯ã·ã§ã³ã®ãã¹ã¦ã®ã¤ã³ããã¯ã¹ã®ãã¥ã¼ãåå¾ãã¾ãã å復å¦çã§ãããã¾ãã¯ããå¤ãã®æä½ãããã¾ãã
784 785 786 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 784 ããã©ã«ã indexes( = {}) Index::ãã¥ã¼.æ°çæ å ±(èªå·±, ) end |
# insert_many ï¼ããã¥ã¡ã³ãããªãã·ã§ã³ = {}ï¼ =çµæ
æä¾ãããããã¥ã¡ã³ãã ã³ã¬ã¯ã·ã§ã³ã«æ¿å ¥ãã¾ãã
907 908 909 910 911 912 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 907 ããã©ã«ã insert_many(ããã¥ã¡ã³ã, = {}) ã¯ã¨ãª ãã£ãã·ã¥.clear_namespace(namespace) inserts = ããã¥ã¡ã³ã.map { |doc| { insert_one: doc } } bulk_write(inserts, ) end |
# insert_one ï¼ããã¥ã¡ã³ããopts = {}) =çµæ
ã³ã¬ã¯ã·ã§ã³ã«åä¸ã®ããã¥ã¡ã³ããæ¿å ¥ãã¾ãã
845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 845 ããã©ã«ã insert_one(ããã¥ã¡ã³ã, ops = {}) ã¯ã¨ãª ãã£ãã·ã¥.clear_namespace(namespace) ã¯ã©ã¤ã¢ã³ã.with_session(ops) è¡ã |ã»ãã·ã§ã³| write_concern = å ´å ops[:write_concern] WriteConcern.å¾ã(ops[:write_concern]) else write_concern_with_session(ã»ãã·ã§ã³) end çºç ArgumentError, 'æ¿å ¥ããããã¥ã¡ã³ã㯠nil ã«ã§ãã¾ããã å ´å ããã¥ã¡ã³ã.nil? context = æä½::Context.æ°çæ å ±( ã¯ã©ã¤ã¢ã³ã: ã¯ã©ã¤ã¢ã³ã, ã»ãã·ã§ã³: ã»ãã·ã§ã³, operation_timeouts: operation_timeouts(ops) ) æä½ = æä½::Insert.æ°çæ å ±( ããã¥ã¡ã³ã: [ ããã¥ã¡ã³ã ], db_name: database.name, coll_name: name, write_concern: write_concern, bypass_document_validation: !!ops[:bypass_document_validation], 次ã®ãªãã·ã§ã³ãããã¾ãã ops, id_genator: ã¯ã©ã¤ã¢ã³ã.[:id_genator], ã»ãã·ã§ã³: ã»ãã·ã§ã³, comment: ops[:comment] ) 追跡.track_operation(æä½, context) è¡ã write_with_retry(write_concern, context: context) è¡ã |æ¥ç¶, txn_num, context| æä½.txn_num = txn_num æä½.execution_with_ connection(æ¥ç¶, context: context) end end end end |
詳ããã¯ã ã æ¤æ»ãstring ã¾ã
ã³ã¬ã¯ã·ã§ã³ã®pretty-printed string æ¤æ»ãåå¾ãã¾ãã
818 819 820 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 818 ããã©ã«ã æ¤æ»ãã " #< Mongo::Collection: 0 x #{ object_id } namespace= #{ namespace } > " end |
#åå空é= string
ã³ã¬ã¯ã·ã§ã³ã®å®å ¨ä¿®é£¾åå空éãåå¾ãã¾ãã
1262 1263 1264 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 1262 ããã©ã«ã namespace " #{ãã¼ã¿ãã¼ã¹.åå} . #{åå} " end |
# operation_timeoutsï¼opts = {}ï¼ = ããã·ã¥
ãã®ã¡ã½ããã¯ããã©ã¤ãã¼ã API ã®ä¸é¨ã§ãã ãã®ã¡ã½ããã¯å°æ¥åé¤ã¾ãã¯å¤æ´ãããå¯è½æ§ããããããå¯è½ãªéã使ç¨ããªãã§ãã ããã
æä½ã¬ãã«ã§è¨å®ããã¦ãã timeout_ms å¤ï¼åå¨ããå ´åï¼ãããã³/ã¾ãã¯ã³ã¬ã¯ã·ã§ã³/ãã¼ã¿ãã¼ã¹/ã¯ã©ã¤ã¢ã³ãã¬ãã«ã§è¨å®ããã¦ãã timeout_ms å¤ï¼åå¨ããå ´åï¼ãè¿ãã¾ãã
1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 1287 ããã©ã«ã 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 |
# parallel_scan ï¼cursor_countããªãã·ã§ã³ = {{}ï¼= Array ========================================================
ã³ã¬ã¯ã·ã§ã³ ãã¥ã¼ã§ä¸¦åã¹ãã£ã³ãå®è¡ãã¾ãã
åæã«å復å¦çã§ããæå¤§ cursor_count ã«ã¼ã½ã«ã®ãªã¹ããè¿ãã¾ããã¹ãã£ã³ä¸ã«ã³ã¬ã¯ã·ã§ã³ã夿´ããã¦ããªãéããåããã¥ã¡ã³ãã¯ã«ã¼ã½ã«ã®çµæã»ããã®ããããã« 1 å表示ããã¾ãã
1022 1023 1024 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 1022 ããã©ã«ã parallel_scan(cursor_count, = {}) find({}, ).parallel_scan(cursor_count, ) end |
#read_concern =ããã·ã¥
ãã®ã³ã¬ã¯ã·ã§ã³ ã¤ã³ã¹ã¿ã³ã¹ã®æå¹ãªèªã¿åãä¿è¨¼ãåå¾ãã¾ãã
ã³ã¬ã¯ã·ã§ã³ãªãã·ã§ã³ã§èªã¿åãä¿è¨¼ (read concern)ãæå®ããã¦ããå ´åã¯ããã®èªã¿åãä¿è¨¼ (read concern)ãè¿ããã¾ãããã以å¤ã®å ´åã¯ããã¼ã¿ãã¼ã¹ã®æå¹ãªèªã¿åãä¿è¨¼ (read concern)ãè¿ããã¾ãã
194 195 196 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 194 ããã©ã«ã read_concern [:read_concern] || database.read_concern end |
# read_preference =ããã·ã¥
ãã®ã³ã¬ã¯ã·ã§ã³ã®æå¹ãª èªã¿è¾¼ã¿è¨å®ï¼read preferenceï¼ ãåå¾ãã¾ãã
ã³ã¬ã¯ã·ã§ã³ãªãã·ã§ã³ã§èªã¿è¾¼ã¿è¨å® (read preference)ãæå®ããã¦ããå ´åã¯ããã®èªã¿è¾¼ã¿è¨å® (read preference)ãè¿ããã¾ãããã以å¤ã®å ´åã¯ããã¼ã¿ãã¼ã¹ã®æå¹ãªèªã¿è¾¼ã¿è¨å® (read preference)ãè¿ããã¾ãã
222 223 224 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 222 ããã©ã«ã read_preference @read_preference ||= [:read] || database.read_preference end |
# replace_one ï¼ãã£ã«ã¿ã¼, ç½®æ, ãªãã·ã§ã³ = {}ï¼ =çµæ
ã³ã¬ã¯ã·ã§ã³å ã®åä¸ã®ããã¥ã¡ã³ããæ°ããããã¥ã¡ã³ãã«ç½®ãæãã¾ãã
1058 1059 1060 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 1058 ããã©ã«ã replace_one(ãã£ã«ã¿ã¼, replacement, = {}) find(ãã£ã«ã¿ã¼, ).replace_one(replacement, ) end |
Search_indexsï¼ãªãã·ã§ã³ = {}ï¼= SearchIndex::View
ID ã¾ãã¯ååã®ãããã 1 ã¤ã®ã¿ãæå®ã§ãã¾ãã両æ¹ãæå®ããã¨ã¨ã©ã¼ãçºçãã¾ããã両æ¹ãå®å ¨ã«çç¥ã§ãã¾ãã
ãã®ã³ã¬ã¯ã·ã§ã³ã®ãã¹ã¦ã®æ¤ç´¢ã¤ã³ããã¯ã¹ã®ãã¥ã¼ãåå¾ãã¾ãã ã§å復å¦çã¾ãã¯ç´æ¥æä½ã§ãã¾ãã ID ã¾ãã¯ååãæå®ããã¦ããå ´åãã¤ãã¬ã¼ã¿ã¯æå®ãããã¤ã³ããã¯ã¹ã®ã¿ãè¿ãã¾ãã ä»ã®ãã¹ã¦ã®æä½ã§ã¯ã IDã¨ååã¯ç¡è¦ããã¾ãã
806 807 808 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 806 ããã©ã«ã search_indexes( = {}) SearchIndex::ãã¥ã¼.æ°çæ å ±(èªå·±, ) end |
# server_selector = Mongo::ServerSelector
ãã®ã³ã¬ã¯ã·ã§ã³ã®ãµã¼ãã¼ ã»ã¬ã¯ã¿ã¼ãåå¾ãã¾ãã
206 207 208 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 206 ããã©ã«ã server_selector @server_selector ||= ServerSelector.å¾ã(read_preference || database.server_selector) end |
ã·ã¹ãã _ã³ã¬ã¯ã·ã§ã³? =ãã¼ã«å¤
ãã®ã¡ã½ããã¯ããã©ã¤ãã¼ã API ã®ä¸é¨ã§ãã ãã®ã¡ã½ããã¯å°æ¥åé¤ã¾ãã¯å¤æ´ãããå¯è½æ§ããããããå¯è½ãªéã使ç¨ããªãã§ãã ããã
ã³ã¬ã¯ã·ã§ã³ãã·ã¹ãã ã³ã¬ã¯ã·ã§ã³ã§ãããã©ããã
1271 1272 1273 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 1271 ããã©ã«ã system_collection? name.start_with?('ã·ã¹ãã ã§ãã ') end |
#timeout_ms â Integer | nil
ãã®ã¡ã½ããã¯ããã©ã¤ãã¼ã API ã®ä¸é¨ã§ãã ãã®ã¡ã½ããã¯å°æ¥åé¤ã¾ãã¯å¤æ´ãããå¯è½æ§ããããããå¯è½ãªéã使ç¨ããªãã§ãã ããã
ãã®ãã¼ã¿ãã¼ã¹ã¾ãã¯å¯¾å¿ããã¯ã©ã¤ã¢ã³ãã®æä½ã¿ã¤ã ã¢ã¦ããè¿ãã¾ãã
1279 1280 1281 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 1279 ããã©ã«ã timeout_ms @timeout_ms || database.timeout_ms end |
#update_many(filter, update, options = {}) â Result
ã³ã¬ã¯ã·ã§ã³å ã®ããã¥ã¡ã³ããæ´æ°ãã¾ãã
1091 1092 1093 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 1091 ããã©ã«ã update_many(ãã£ã«ã¿ã¼, update, = {}) find(ãã£ã«ã¿ã¼, ).update_many(update, ) end |
#update_one(filter, update, options = {}) â Result
ã³ã¬ã¯ã·ã§ã³å ã® 1 ã¤ã®ããã¥ã¡ã³ããæ´æ°ãã¾ãã
1129 1130 1131 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 1129 ããã©ã«ã update_one(ãã£ã«ã¿ã¼, update, = {}) find(ãã£ã«ã¿ã¼, ).update_one(update, ) end |
夿°è¡¨ç¤º ï¼ãã¤ãã©ã¤ã³ = []ããªãã·ã§ã³ = {}ï¼ = ChangeStream
夿´ã¹ããªã¼ã ã§ã¯ 'éåæ°' ã®èªã¿åãä¿è¨¼ (read concern)ã®ã¿ã許å¯ããã¾ãã
ãã®ãã«ãã¼ ã¡ã½ããã¯ãåéå¯è½æ§ããµãã¼ãããããã«ã $changeStream ã¹ãã¼ã¸ã§æªå å·¥ã®éè¨ãå®è¡ãããããæ¨å¥¨ããã¾ãã
ã¦ã¼ã¶ã¼ãç¹å®ã®ã³ã¬ã¯ã·ã§ã³ã«å¯¾ãããã¹ã¦ã®å¤æ´ã«å¯¾ãã¦éç¥ãéä¿¡ãããããªã¯ã¨ã¹ãã§ããããã«ãã¾ãã
642 643 644 645 646 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 642 ããã©ã«ã ç£è¦(ãã¤ãã©ã¤ã³ = [], = {}) = .dup [: cursor_type] = :tailable_await å ´å [:max_await_time_ms] ãã¥ã¼::ChangeStream.æ°çæ å ±(ãã¥ã¼.æ°çæ å ±(èªå·±, {}, ), ãã¤ãã©ã¤ã³, nil, ) end |
(new_options)ã使ç¨ãã# Mongo::Collection
æ°ããã³ã¬ã¯ã·ã§ã³ã¤ã³ã¹ã¿ã³ã¹ãè¿ãã¾ãã
299 300 301 302 303 304 305 306 307 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 299 ããã©ã«ã ã¨å ±ã«() .ãã¼.å è¡ã |k| çºç ã¨ã©ã¼::UnchangeableCollectionOption.æ°çæ å ±(k) ãã ãã CHANGEABLE_OPTIONS.include?(k) end = @options.dup .åé¤(:write) å ´å [:write] & & [:write_concern] .åé¤(:write_concern) å ´å [:write_concern] & & [:write] ã³ã¬ã¯ã·ã§ã³.æ°çæ å ±(database, name, .update()) end |
#write_concern = Mongo::WriteConcern
ãã®ã³ã¬ã¯ã·ã§ã³ã®æå¹ãªæ¸è¾¼ã¿ä¿è¨¼ (write concern) ãåå¾ãã¾ãã
ã³ã¬ã¯ã·ã§ã³ãªãã·ã§ã³ã§æ¸è¾¼ã¿ä¿è¨¼ (write concern)ãæå®ããã¦ããå ´åã¯ããã®æ¸è¾¼ã¿ä¿è¨¼ (write concern)ãè¿ããã¾ãããã以å¤ã®å ´åã¯ããã¼ã¿ãã¼ã¹ã®æå¹ãªæ¸è¾¼ã¿ä¿è¨¼ (write concern)ãè¿ããã¾ãã
238 239 240 241 242 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 238 ããã©ã«ã write_concern @write_concern ||= WriteConcern.å¾ã( [:write_concern] || [:write] || database.write_concern ) end |
#write_concern_with_session ï¼ã»ãã·ã§ã³ï¼= Mongo::WriteConcern
ãã®ã¡ã½ããã¯ããã©ã¤ãã¼ã API ã®ä¸é¨ã§ãã ãã®ã¡ã½ããã¯å°æ¥åé¤ã¾ãã¯å¤æ´ãããå¯è½æ§ããããããå¯è½ãªéã使ç¨ããªãã§ãã ããã
ãã®ã³ã¬ã¯ã·ã§ã³ã«å¯¾ããæä½ã«ä½¿ç¨ããæ¸è¾¼ã¿ä¿è¨¼ (write concern) ãåå¾ãã¾ãï¼ã»ãã·ã§ã³ãæå®ãããå ´åï¼ã
ã»ãã·ã§ã³ããã©ã³ã¶ã¯ã·ã§ã³å ã«ãããã³ã¬ã¯ã·ã§ã³ã«ç¢ºèªããã¦ããªãæ¸è¾¼ã¿ä¿è¨¼ (write concern)ãããå ´åã¯ãæ¸è¾¼ã¿ä¿è¨¼ (write concern) ã® :w ãªãã·ã§ã³ãåé¤ãã¾ãããã以å¤ã®å ´åã¯ã夿´ããã¦ããªãæ¸è¾¼ã¿ä¿è¨¼ (write concern)ãè¿ãã¾ãã
255 256 257 258 259 260 261 262 263 |
# ãã¡ã¤ã« 'lib/mongo/ ã³ã¬ã¯ã·ã§ã³', è¡ 255 ããã©ã«ã write_concern_with_session(ã»ãã·ã§ã³) wc = write_concern å ´å ã»ãã·ã§ã³ & & ã»ãã·ã§ã³.in_transaction? & & wc & & !wc.ç¢ºèªæ¸ã¿? ops = wc..dup ops.åé¤(:w) return WriteConcern.å¾ã(ops) end wc end |