Esempio n. 1
0
 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);
Esempio n. 3
0
        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);
        }