将cosmosdb中的记录计数添加到已存在的sql查询中,该查询在一个查询中返回一组现有的结果

gpfsuwkq  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(285)

是否可以将计数作为属性添加到现有sql查询返回的结果中?或者单独计算是唯一的方法?
查询:

select * from c where 1=1 ORDER BY c.packageId OFFSET 0 LIMIT 10

(查询是由两个不同的字符串构建的,这就是为什么有1=1)
结果:

[
    [
        {
            "a": [
                {
                    "ab": ""
                }
            ],
            "b": "a",
            "c": 0,
            "d": "0"
        },
        {
            "a": [
                {
                    "ab": ""
                }
            ],
            "b": "a",
            "c": 0,
            "d": "0"
        }
    ],
    null
]

我想要的是,将所有记录的计数作为results json中的一个属性返回,以及在哪里有continuation标记。这是一个api,因此我希望将此信息作为结果的一部分,而不是创建另一个只获取计数的api。

wko9yo5t

wko9yo5t1#

使用sql很难做到这一点。
作为一种解决方法,您可以使用.NETSDK来实现这一点。代码如下:

string sqlQueryText = "select * from c where 1=1 ORDER BY c.packageId OFFSET 0 LIMIT 10";

    QueryDefinition queryDefinition = new QueryDefinition(sqlQueryText);
    FeedIterator<Employee> feedIterator = this.container.GetItemQueryIterator<Employee>(queryDefinition);
    FeedResponse<Employee> response = await feedIterator.ReadNextAsync();
    Console.WriteLine("ContinuationToken:" + response.ContinuationToken);
    Console.WriteLine("Count:" + response.Count);

相关问题