文档 DbChangeFeed 中的 MaxItemCount

MaxItemCount in Document DbChangeFeed

我正在测试来自 DocumentDb 的新变更源。 我正在通过轮询 api.

将其连接到逻辑应用程序

因为每个请求我只需要 1 个项目,所以我将 MaxItemCount 设置为 1。 这非常有效......直到获得通过 36 结果。下一个请求,给了我 70 个结果(并且最大项目数设置为 1)并且跳过了 +- 150 个文档。

这是 DocumentDB 中的错误还是我做错了什么?

看代码,前36次,我只得到1个结果,从那以后我就出现了上述问题:

 var changeFeedOptions = new ChangeFeedOptions
        {
            MaxItemCount = 1,
            RequestContinuation = continuationToken,
            PartitionKeyRangeId = partitionKey, // singe partioned collection
            StartFromBeginning = fromBeginning
        };

        var feed = ((DocumentClient) _documentClient).CreateDocumentChangeFeedQuery(
            collectionUri,
            changeFeedOptions);

        var result = await feed.ExecuteNextAsync();

        var document = result.FirstOrDefault();

        return new ChangeFeedResponse
        {
            ContinuationToken = result.ResponseContinuation, // this token will be used the next time
            Document = document
        };

对于 Change Feed,粒度是按事务划分的,这意味着来自同一事务的更改被视为原子块,并按原样返回(不能中断事务)。因此 Change Feed 的结果可以将 MaxItemCount(页面大小)扩展到事务边界。例如,一个脚本插入了 70 个文档——所有这些都作为单个事务出现,您轮询更改并提供 MaxItemCount = 1;你会得到 70 个项目(它将在事务边界停止)。这有意义吗?

这70个文档是脚本插入的吗?