文档DbChangeFeed中的MaxItemCount

Ide*_*ity 2 c# azure azure-cosmosdb

我正在测试DocumentDb中的新更改源.我通过轮询API将它连接到Logic应用程序.

因为我每个请求只需要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
        };
Run Code Online (Sandbox Code Playgroud)

小智 5

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

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