runOn: - minServerVersion: "4.1.11" data: - { _id: 1, x: 1, y: 1, t: {u: {v: 1}} } - { _id: 2, x: 2, y: 1 } collection_name: &collection_name "test" database_name: &database_name "crud-tests" tests: - description: "UpdateOne using pipelines" operations: - name: "updateOne" arguments: filter: { _id: 1 } update: [ { $replaceRoot: { newRoot: "$t" } }, { $addFields: { foo: 1 } } ] result: matchedCount: 1 modifiedCount: 1 upsertedCount: 0 expectations: - command_started_event: command: update: *collection_name updates: - q: { _id: 1 } u: [ { $replaceRoot: { newRoot: "$t" } }, { $addFields: { foo: 1 } } ] command_name: update database_name: *database_name outcome: collection: data: - { _id: 1, u: {v: 1}, foo: 1 } - { _id: 2, x: 2, y: 1 } - description: "UpdateMany using pipelines" operations: - name: "updateMany" arguments: filter: {} update: [ { $project: { x: 1 } }, { $addFields: { foo: 1 } } ] result: matchedCount: 2 modifiedCount: 2 upsertedCount: 0 expectations: - command_started_event: command: update: *collection_name updates: - q: { } u: [ { $project: { x: 1 } }, { $addFields: { foo: 1 } } ] multi: true command_name: update database_name: *database_name outcome: collection: data: - { _id: 1, x: 1, foo: 1 } - { _id: 2, x: 2, foo: 1 } - description: "FindOneAndUpdate using pipelines" operations: - name: "findOneAndUpdate" arguments: filter: { _id: 1 } update: [ { $project: { x: 1 } }, { $addFields: { foo: 1 } } ] expectations: - command_started_event: command: findAndModify: *collection_name update: - $project: { x: 1 } - $addFields: { foo: 1 } command_name: findAndModify database_name: *database_name outcome: collection: data: - { _id: 1, x: 1, foo: 1 } - { _id: 2, x: 2, y: 1 } - description: "UpdateOne in bulk write using pipelines" operations: - name: "bulkWrite" arguments: requests: - name: "updateOne" arguments: filter: { _id: 1 } update: [ { $replaceRoot: { newRoot: "$t" } }, { $addFields: { foo: 1 } } ] result: matchedCount: 1 modifiedCount: 1 upsertedCount: 0 expectations: - command_started_event: command: update: *collection_name updates: - q: { _id: 1 } u: [ { $replaceRoot: { newRoot: "$t" } }, { $addFields: { foo: 1 } } ] command_name: update database_name: *database_name outcome: collection: data: - { _id: 1, u: {v: 1}, foo: 1 } - { _id: 2, x: 2, y: 1 } - description: "UpdateMany in bulk write using pipelines" operations: - name: "bulkWrite" arguments: requests: - name: "updateMany" arguments: filter: {} update: [ { $project: { x: 1 } }, { $addFields: { foo: 1 } } ] result: matchedCount: 2 modifiedCount: 2 upsertedCount: 0 expectations: - command_started_event: command: update: *collection_name updates: - q: { } u: [ { $project: { x: 1 } }, { $addFields: { foo: 1 } } ] multi: true command_name: update database_name: *database_name outcome: collection: data: - { _id: 1, x: 1, foo: 1 } - { _id: 2, x: 2, foo: 1 }