data: - {_id: 1, y: [{b: 3}, {b: 1}]} - {_id: 2, y: [{b: 0}, {b: 1}]} - {_id: 3, y: [{b: 5, c: [{d: 2}, {d: 1}] }]} minServerVersion: '3.5.6' tests: - description: "UpdateOne when no document matches arrayFilters" operation: name: "updateOne" arguments: filter: {} update: $set: {"y.$[i].b": 2} arrayFilters: - {i.b: 4} outcome: result: matchedCount: 1 modifiedCount: 0 upsertedCount: 0 collection: data: - {_id: 1, y: [{b: 3}, {b: 1}]} - {_id: 2, y: [{b: 0}, {b: 1}]} - {_id: 3, y: [{b: 5, c: [{d: 2}, {d: 1}] }]} - description: "UpdateOne when one document matches arrayFilters" operation: name: "updateOne" arguments: filter: {} update: $set: {"y.$[i].b": 2} arrayFilters: - {i.b: 3} outcome: result: matchedCount: 1 modifiedCount: 1 upsertedCount: 0 collection: data: - {_id: 1, y: [{b: 2}, {b: 1}]} - {_id: 2, y: [{b: 0}, {b: 1}]} - {_id: 3, y: [{b: 5, c: [{d: 2}, {d: 1}] }]} - description: "UpdateOne when multiple documents match arrayFilters" operation: name: "updateOne" arguments: filter: {} update: $set: {"y.$[i].b": 2} arrayFilters: - {i.b: 1} outcome: result: matchedCount: 1 modifiedCount: 1 upsertedCount: 0 collection: data: - {_id: 1, y: [{b: 3}, {b: 2}]} - {_id: 2, y: [{b: 0}, {b: 1}]} - {_id: 3, y: [{b: 5, c: [{d: 2}, {d: 1}] }]} - description: "UpdateOne when no documents match multiple arrayFilters" operation: name: "updateOne" arguments: filter: {_id: 3} update: $set: {"y.$[i].c.$[j].d": 0} arrayFilters: - {i.b: 5} - {j.d: 3} outcome: result: matchedCount: 1 modifiedCount: 0 upsertedCount: 0 collection: data: - {_id: 1, y: [{b: 3}, {b: 1}]} - {_id: 2, y: [{b: 0}, {b: 1}]} - {_id: 3, y: [{b: 5, c: [{d: 2}, {d: 1}] }]} - description: "UpdateOne when one document matches multiple arrayFilters" operation: name: "updateOne" arguments: filter: {_id: 3} update: $set: {"y.$[i].c.$[j].d": 0} arrayFilters: - {i.b: 5} - {j.d: 1} outcome: result: matchedCount: 1 modifiedCount: 1 upsertedCount: 0 collection: data: - {_id: 1, y: [{b: 3}, {b: 1}]} - {_id: 2, y: [{b: 0}, {b: 1}]} - {_id: 3, y: [{b: 5, c: [{d: 2}, {d: 0}] }]}