7
7
uri = "<connection string URI>"
8
8
9
9
Mongo ::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 ]
14
14
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
+ }
20
20
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 } "
25
25
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 } "
30
29
end
30
+ end
31
31
32
- # Starts a session
33
- session = client . start_session
32
+ # Starts a session
33
+ session = client . start_session
34
34
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