如何使用查询从azure cosmos db中获取超过100条记录

时间:2017-08-02 07:24:14

标签: azure azure-cosmosdb nosql

我想使用select query从azure-cosmos DB中获取100条以上的记录。

我正在编写存储过程并使用select查询来获取记录。

SELECT * FROM activities a

虽然记录超过500条,但我只获得了100条记录。 我可以使用Azure提供的设置配置获取所有记录。

enter image description here

我想使用查询或存储过程执行相同的操作。我怎么能这样做?

请建议需要完成的更改。

2 个答案:

答案 0 :(得分:10)

  

我正在编写存储过程并使用select查询来获取记录。

     

SELECT * FROM activities a

     

虽然有超过500条记录,但我只获得了100条记录。

queryDocuments的FeedOptions pageSize属性的默认值为100,这可能是问题的原因。请尝试将值设置为 -1 。以下存储过程在我这边工作正常,请参考它。

function getall(){
 var context = getContext();
  var response = context.getResponse();
  var collection = context.getCollection();
  var collectionLink = collection.getSelfLink();

  var filterQuery = 'SELECT * FROM c';

  collection.queryDocuments(collectionLink, filterQuery, {pageSize:-1 },
    function(err, documents) {
      response.setBody(response.getBody() + JSON.stringify(documents));
    }
  );
}

答案 1 :(得分:0)

如果有人点击此页面,则上述答案已过时。 @azure/cosmos 现在为感兴趣的人提供了如下选项:

const usersQuery = {
        query: "SELECT * FROM c where c.userId = 'someid'" +
            " order by c.userId asc,  c.timestamp asc"
    };
const { resources: users } = await container.items
                .query(usersQuery, { maxDegreeOfParallelism: 5,maxItemCount: 10000 }).fetchNext()

参考here