public static Task <long> BulkUpdateDocuments <T>( this IMongoCollection <T> collection, IEnumerable <T> documents, BuildBulkFilter <T> filter, BuildBulkUpdate <T> update, CancellationToken cancellationToken = default ) where T : Document => collection.BulkUpdateDocuments(documents, filter, update, null, cancellationToken);
public static Task <long> BulkUpdateDocuments <T>( this IMongoDatabase database, IEnumerable <T> documents, BuildBulkFilter <T> filter, BuildBulkUpdate <T> update, CancellationToken cancellationToken = default ) where T : Document => database.GetDocumentCollection <T>().BulkUpdateDocuments(documents, filter, update, cancellationToken);
public static async Task <long> BulkUpdateDocuments <T>( this IMongoCollection <T> collection, IEnumerable <T> documents, BuildBulkFilter <T> filter, BuildBulkUpdate <T> update, Action <BulkWriteOptions>?configure, CancellationToken cancellationToken = default ) where T : Document { var options = new BulkWriteOptions(); configure?.Invoke(options); var models = documents.Select( document => new UpdateOneModel <T>( filter(document, Builders <T> .Filter), update(document, Builders <T> .Update) ) ); var result = await collection.BulkWriteAsync(models, options, cancellationToken).Ignore(); return(result.ModifiedCount); }