description: "updateMany" schemaVersion: "1.0" createEntities: - client: id: &client client observeEvents: - commandStartedEvent - commandSucceededEvent - commandFailedEvent - database: id: &database database client: *client databaseName: &databaseName command-monitoring-tests - collection: id: &collection collection database: *database collectionName: &collectionName test initialData: - collectionName: *collectionName databaseName: *databaseName documents: - { _id: 1, x: 11 } - { _id: 2, x: 22 } - { _id: 3, x: 33 } tests: - description: "A successful updateMany" operations: - name: updateMany object: *collection arguments: filter: { _id: { $gt: 1 } } update: { $inc: { x: 1 } } expectEvents: - client: *client events: - commandStartedEvent: command: update: *collectionName updates: - q: { _id: { $gt: 1 } } u: { $inc: { x: 1 } } upsert: { $$unsetOrMatches: false } multi: true ordered: true commandName: update databaseName: *databaseName - commandSucceededEvent: reply: { ok: 1, n: 2 } commandName: update - description: "A successful updateMany with write errors" operations: - name: updateMany object: *collection arguments: filter: { _id: { $gt: 1 } } update: { $unsupported: { x: 1 } } expectError: isClientError: false expectEvents: - client: *client events: - commandStartedEvent: command: update: *collectionName updates: - q: { _id: { $gt: 1 } } u: { $unsupported: { x: 1 } } upsert: { $$unsetOrMatches: false } multi: true ordered: true commandName: update databaseName: *databaseName - commandSucceededEvent: reply: ok: 1 n: 0 # The legacy version of this test included an assertion that writeErrors contained a single document # with index=0, a "code" value, and a non-empty "errmsg". However, writeErrors can contain extra fields # beyond these, and the unified format currently does not permit allowing extra fields in sub-documents, # so those assertions are not present here. writeErrors: { $$type: array } commandName: update