Eddie
Eddie

Reputation: 621

How to fetch more than 100 records from azure cosmos db using query

I want to fetch more than 100 records from azure-cosmos DB using select query.

I am writing a stored procedure and using a select query to fetch the record.

SELECT * FROM activities a

I am getting only 100 records though there are more than 500 records. I am able to get all records usings the setting configuration provided by Azure.

enter image description here

I want to perform the same operation using query or stored procedure. How can I do that ??

Please suggest changes that need to accomplish.

Upvotes: 11

Views: 13453

Answers (2)

Burak Karakuş
Burak Karakuş

Reputation: 1410

If anyone hits this page, the answers above are obsolete. @azure/cosmos now has some options like below for those who are interested:

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()

For reference, see here.

Upvotes: 0

Fei Han
Fei Han

Reputation: 27793

I am writing a stored procedure and using a select query to fetch the record.

SELECT * FROM activities a

I am getting only 100 records though there are more than 500 records.

The default value of FeedOptions pageSize property for queryDocuments is 100, which might be the cause of the issue. Please try to set the value to -1. The following stored procedure works fine on my side, please refer to it.

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));
    }
  );
}

Upvotes: 14

Related Questions