当前位置: 首页 > 知识库问答 >
问题:

几个小时内cosmosDB查询缺少结果

方增
2023-03-14
public static List<T> ToList<T>(this IDocumentQuery<T> documentQuery)
{
    List<T> documents = new List<T>();
    while (documentQuery.HasMoreResults)
    {
        documents.AddRange(documentQuery.ExecuteNextAsync<T>().Result);
    }
    return documents;
}
queryable.AsDocumentQuery()

使用的解决方案类似于microsoft文档中的内容:https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.documents.linq.documentQueryable.asdocumentQuery?view=azure-dotnet

我们目前正在将我们的数据解决方案转移到cosmosDB,这就是我们如何注意到这个问题的。你知道是什么导致了这一切吗?我们是否应该期待更多同类型的问题?你知道我们如何确定我们收到的是不完整的结果吗?

共有1个答案

穆彬郁
2023-03-14
private static async Task<KeyValuePair<string, IEnumerable<CeleryTask>>> QueryDocumentsByPage(int pageNumber, int pageSize, string continuationToken)
    {
        DocumentClient documentClient = new DocumentClient(new Uri("https://{CosmosDB/SQL Account Name}.documents.azure.com:443/"), "{CosmosDB/SQL Account Key}");

        var feedOptions = new FeedOptions {
            MaxItemCount = pageSize,
            EnableCrossPartitionQuery = true,

            // IMPORTANT: Set the continuation token (NULL for the first ever request/page)
            RequestContinuation = continuationToken 
        };

        IQueryable<CeleryTask> filter = documentClient.CreateDocumentQuery<CeleryTask>("dbs/{Database Name}/colls/{Collection Name}", feedOptions);
        IDocumentQuery<CeleryTask> query = filter.AsDocumentQuery();

        FeedResponse<CeleryTask> feedRespose = await query.ExecuteNextAsync<CeleryTask>();

        List<CeleryTask> documents = new List<CeleryTask>();
        foreach (CeleryTask t in feedRespose)
        {
            documents.Add(t);
        }

        // IMPORTANT: Ensure the continuation token is kept for the next requests
        return new KeyValuePair<string, IEnumerable<CeleryTask>>(feedRespose.ResponseContinuation, documents);
    }
 类似资料:
  • 问题内容: 我正在使用MySQL存储视频游戏数据。我有用于标题,平台,标签,徽章,评论,开发人员,出版商等的表… 当某人正在观看游戏时,最好有一个查询来返回与游戏相关的所有数据,还是最好使用多个查询?直观地,由于我们具有评论,将它们包括在同一查询中似乎毫无意义,因为它们需要分页。但是在其他情况下,我不确定是否要分解查询或使用两个查询… 我有点担心性能,因为我现在加入游戏下表:开发人员,发行者,元标

  • 我需要一种方法来收集在Oracle DB(Oracle数据库11g)中执行的所有查询在过去的几个小时内,无论查询有多快(这将用于计算sql覆盖率后,对我的应用程序运行测试,其中有几个点执行查询)。 我不能使用像V$SQL这样的表,因为不能保证查询会在那里保持足够长的时间。我似乎可以使用DBA_HIST_SQLTEXT,但是我没有找到过滤掉当前测试运行前执行的查询的方法。 所以我的问题是:我可以使用

  • 我正在用以下查询查询我的索引: 字段是字符串数组,查询的工作方式与预期相同。然而,有些文档没有字段,我也希望获得这些文档。 我怎么能那么做?

  • 问题内容: 我有一个PostgreSQL 9.1数据库,该数据库的表包含一个 时间戳 和一个测量 值 我需要每小时平均8小时范围内的平均值。换句话说,我需要平均1h-8h,2h-9h,3h-10h等。 我不知道如何进行这样的查询。我到处都看过,但也不知道要寻找什么功能。 我发现的收盘价是每小时/每天的平均值或块平均值(例如1h-8h,9h-16h等)。但是在这些情况下,时间戳只是使用函数转换(如下

  • 我在Spring-Boot启用JPA的项目中有以下相关的JPA注释类(所有Groovy代码): 当我尝试执行以下JPA查询时: 生成的SQL语句似乎没有字符表的别名或appares_in的列名: 生成以下SQL: 非常感谢任何帮助。