Cosmos Db 不返回所有记录,即使 maxItemCount 设置为 -1
Cosmos Db not returning all records even though maxItemCount set to -1
我有一个包含 50 000 条记录的 cosmos 数据库,但下面的代码只有 returns 8356。我认为将 MaxItemCount 设置为 -1 会 return 所有这些。我怎样才能做到这一点?
public async Task<IEnumerable<T>> ReadAsync(Expression<Func<T, bool>> predicate)
{
var entityList = new List<T>();
var query = _container.GetItemLinqQueryable<T>(requestOptions: new QueryRequestOptions { MaxItemCount = -1 })
.Where(predicate).OrderByDescending(x => x.TimeStamp).AsQueryable();
using (var iterator = query.ToFeedIterator())
{
entityList.AddRange(
await iterator.ReadNextAsync());
}
return entityList;
}
您没有耗尽所有查询结果(缺少对 HasMoreResults 的检查):
public async Task<IEnumerable<T>> ReadAsync(Expression<Func<T, bool>> predicate)
{
var entityList = new List<T>();
var query = _container.GetItemLinqQueryable<T>(requestOptions: new QueryRequestOptions { MaxItemCount = -1 })
.Where(predicate).OrderByDescending(x => x.TimeStamp).AsQueryable();
using (var iterator = query.ToFeedIterator())
{
while (iterator.HasMoreResults)
{
entityList.AddRange(
await iterator.ReadNextAsync());
}
}
return entityList;
}
我有一个包含 50 000 条记录的 cosmos 数据库,但下面的代码只有 returns 8356。我认为将 MaxItemCount 设置为 -1 会 return 所有这些。我怎样才能做到这一点?
public async Task<IEnumerable<T>> ReadAsync(Expression<Func<T, bool>> predicate)
{
var entityList = new List<T>();
var query = _container.GetItemLinqQueryable<T>(requestOptions: new QueryRequestOptions { MaxItemCount = -1 })
.Where(predicate).OrderByDescending(x => x.TimeStamp).AsQueryable();
using (var iterator = query.ToFeedIterator())
{
entityList.AddRange(
await iterator.ReadNextAsync());
}
return entityList;
}
您没有耗尽所有查询结果(缺少对 HasMoreResults 的检查):
public async Task<IEnumerable<T>> ReadAsync(Expression<Func<T, bool>> predicate)
{
var entityList = new List<T>();
var query = _container.GetItemLinqQueryable<T>(requestOptions: new QueryRequestOptions { MaxItemCount = -1 })
.Where(predicate).OrderByDescending(x => x.TimeStamp).AsQueryable();
using (var iterator = query.ToFeedIterator())
{
while (iterator.HasMoreResults)
{
entityList.AddRange(
await iterator.ReadNextAsync());
}
}
return entityList;
}