Esempio n. 1
0
        public async Task UpdateAISummaryAsync(
            Guid mediaId,
            MediaAISummary mediaAISummary,
            CancellationToken cancellationToken)
        {
            UpdateDefinition <Media> update = Builders <Media> .Update.Set(x => x.AISummary, mediaAISummary);

            await _mediaStoreContext.Medias.UpdateOneAsync(
                x => x.Id == mediaId,
                update,
                DefaultMongoOptions.Update,
                cancellationToken);
        }
Esempio n. 2
0
        public async Task UpdateMediaAISummaryAsync(CancellationToken cancellationToken)
        {
            List <MediaAI> allAI = await _context.MediaAI.AsQueryable().ToListAsync(cancellationToken);

            foreach (List <MediaAI> chunk in allAI.ChunkBy(500))
            {
                List <UpdateOneModel <Media> > bulkUpdates = new();

                foreach (MediaAI mediaAI in chunk)
                {
                    MediaAISummary summary = BuildSummary(mediaAI);

                    UpdateDefinition <Media> update = Builders <Media> .Update.Set(x => x.AISummary, summary);

                    bulkUpdates.Add(new UpdateOneModel <Media>(
                                        Builders <Media> .Filter.Eq(x => x.Id, mediaAI.MediaId),
                                        update));
                }

                await _context.Medias.BulkWriteAsync(bulkUpdates, null, cancellationToken);

                Console.WriteLine("Chunk updated...");
            }
        }