【发布时间】:2018-05-31 05:08:05
【问题描述】:
我的数据库包含来自租户 ID 标识的多个数据源的数据。一个租户有数百万条记录,而另一个租户只有 75 条记录,如下面的截图
当我使用以下代码查询数据时
var count = continuationToken?.Count ?? ContinuationToken.DefaultPageCount;
var feedOptions = new FeedOptions
{
EnableCrossPartitionQuery = true,
MaxItemCount = count,
RequestContinuation = continuationToken?.NextRowKey
};
var query = sortByAscending
? _client.CreateDocumentQuery<T>(_collection.DocumentsLink, feedOptions).Where(filter).OrderBy(order).AsDocumentQuery()
: _client.CreateDocumentQuery<T>(_collection.DocumentsLink, feedOptions).Where(filter).OrderByDescending(order).AsDocumentQuery();
var feedResponse = await query.ExecuteNextAsync<T>();
var items = feedResponse.AsEnumerable().ToList();
var nextPageToken = feedResponse.ResponseContinuation;
return new ContinuationTokenData<T>(items, items.Count, nextPageToken, count);
过滤器位于租户 ID 上。前 2 页(每页 25 条记录)的数据很好地返回给租户。但是,当它到达最后 25 条记录时,延续令牌不断重复旧值,如下所示
你知道如何解决这个问题还是这是 CosmoDb 的一个错误?谢谢
【问题讨论】:
标签: c# .net azure azure-cosmosdb