private async Task <CollectionPrepareResult> CheckIterativeCollectionAsync(ITextStatusNotifier progress, IterativeTransitOptions iterOpts, CancellationToken token)
        {
            _logger.Debug("Detected iterative transit for collection {Collection} with checkpoint field {Field}",
                          _collectionName, iterOpts.Field);
            progress.Status = "Searching checkpoint...";
            var filter = await CreateIterativeFilterAsync(iterOpts, token);

            _logger.Debug("Counting how many documents should be transferred");
            progress.Status = "Counting documents...";
            var count = await _source.CountLagAsync(filter, token);

            _logger.Debug("Collection {Collection} has lag {Lag:N0}", _collectionName, count);

            return(new CollectionPrepareResult(filter, count));
        }