1runOn: 2 - 3 minServerVersion: "4.0" 4 topology: ["replicaset"] 5 - 6 minServerVersion: "4.1.8" 7 topology: ["sharded"] 8 9database_name: &database_name "transaction-tests" 10collection_name: &collection_name "test" 11 12data: 13 - _id: 1 14 - _id: 2 15 - _id: 3 16 17tests: 18 - description: findOneAndReplace 19 20 operations: 21 - name: startTransaction 22 object: session0 23 - name: findOneAndReplace 24 object: collection 25 arguments: 26 session: session0 27 filter: {_id: 3} 28 replacement: {x: 1} 29 returnDocument: Before 30 result: {_id: 3} 31 - name: findOneAndReplace 32 object: collection 33 arguments: 34 session: session0 35 filter: {_id: 4} 36 replacement: {x: 1} 37 upsert: true 38 returnDocument: After 39 result: {_id: 4, x: 1} 40 - name: commitTransaction 41 object: session0 42 43 expectations: 44 - command_started_event: 45 command: 46 findAndModify: *collection_name 47 query: {_id: 3} 48 update: {x: 1} 49 new: false 50 lsid: session0 51 txnNumber: 52 $numberLong: "1" 53 startTransaction: true 54 autocommit: false 55 readConcern: 56 writeConcern: 57 command_name: findAndModify 58 database_name: *database_name 59 - command_started_event: 60 command: 61 findAndModify: *collection_name 62 query: {_id: 4} 63 update: {x: 1} 64 new: true 65 upsert: true 66 lsid: session0 67 txnNumber: 68 $numberLong: "1" 69 startTransaction: 70 autocommit: false 71 readConcern: 72 writeConcern: 73 command_name: findAndModify 74 database_name: *database_name 75 - command_started_event: 76 command: 77 commitTransaction: 1 78 lsid: session0 79 txnNumber: 80 $numberLong: "1" 81 startTransaction: 82 autocommit: false 83 readConcern: 84 writeConcern: 85 command_name: commitTransaction 86 database_name: admin 87 88 outcome: 89 collection: 90 data: 91 - {_id: 1} 92 - {_id: 2} 93 - {_id: 3, x: 1} 94 - {_id: 4, x: 1} 95 96 - description: collection writeConcern ignored for findOneAndReplace 97 98 operations: 99 - name: startTransaction 100 object: session0 101 arguments: 102 options: 103 writeConcern: 104 w: majority 105 - name: findOneAndReplace 106 object: collection 107 collectionOptions: 108 writeConcern: 109 w: majority 110 arguments: 111 session: session0 112 filter: {_id: 3} 113 replacement: {x: 1} 114 returnDocument: Before 115 result: {_id: 3} 116 - name: commitTransaction 117 object: session0 118 119 expectations: 120 - command_started_event: 121 command: 122 findAndModify: *collection_name 123 query: {_id: 3} 124 update: {x: 1} 125 new: false 126 lsid: session0 127 txnNumber: 128 $numberLong: "1" 129 startTransaction: true 130 autocommit: false 131 readConcern: 132 writeConcern: 133 command_name: findAndModify 134 database_name: *database_name 135 - command_started_event: 136 command: 137 commitTransaction: 1 138 lsid: session0 139 txnNumber: 140 $numberLong: "1" 141 startTransaction: 142 autocommit: false 143 readConcern: 144 writeConcern: 145 w: majority 146 command_name: commitTransaction 147 database_name: admin 148 149