77uri = "<connection string URI>"
88
99Mongo ::Client . new ( uri ) do |client |
10- #start-txn
11- database = client . use ( 'sample_mflix' )
12- movies_collection = database [ :movies ]
13- users_collection = database [ :users ]
10+ #start-txn
11+ database = client . use ( 'sample_mflix' )
12+ movies_collection = database [ :movies ]
13+ users_collection = database [ :users ]
1414
15- def run_transaction ( session , movies_collection , users_collection )
16- transaction_options = {
17- read_concern : { level : "snapshot" } ,
18- write_concern : { w : "majority" }
19- }
15+ def run_transaction ( session , movies_collection , users_collection )
16+ transaction_options = {
17+ read_concern : { level : "snapshot" } ,
18+ write_concern : { w : "majority" }
19+ }
2020
21- session . with_transaction ( transaction_options ) do
22- # Inserts document into the "movies" collection
23- insert_result = movies_collection . insert_one ( { name : 'The Menu' , runtime : 107 } , session : session )
24- puts "Insert completed: #{ insert_result . inspect } "
21+ session . with_transaction ( transaction_options ) do
22+ # Inserts document into the "movies" collection
23+ insert_result = movies_collection . insert_one ( { name : 'The Menu' , runtime : 107 } , session : session )
24+ puts "Insert completed: #{ insert_result . inspect } "
2525
26- # Updates document in the "users" collection
27- update_result = users_collection . update_one ( { name : 'Amy Phillips' } , { "$set" => { name : 'Amy Ryan' } } , session : session )
28- puts "Update completed: #{ update_result . inspect } "
29- end
26+ # Updates document in the "users" collection
27+ update_result = users_collection . update_one ( { name : 'Amy Phillips' } , { "$set" => { name : 'Amy Ryan' } } , session : session )
28+ puts "Update completed: #{ update_result . inspect } "
3029 end
30+ end
3131
32- # Starts a session
33- session = client . start_session
32+ # Starts a session
33+ session = client . start_session
3434
35- begin
36- # Runs the transaction
37- run_transaction ( session , movies_collection , users_collection )
38- puts "Transaction committed successfully."
39- rescue Mongo ::Error ::OperationFailure => e
40- puts "Transaction failed and was aborted. Error: #{ e . message } "
41- ensure
42- session . end_session
43- end
44- #end-txn
45- end
35+ begin
36+ # Runs the transaction
37+ run_transaction ( session , movies_collection , users_collection )
38+ puts "Transaction committed successfully."
39+ rescue Mongo ::Error ::OperationFailure => e
40+ puts "Transaction failed and was aborted. Error: #{ e . message } "
41+ ensure
42+ session . end_session
43+ end
44+ #end-txn
45+ end
0 commit comments