title: Recursive Fetch All Items In DynamoDB Query using Node JS
body: <p>This is probably more of an JS/Async question than a DynamoDB specific question - </p>
  
  <p>I want to fetch all the items in a table with a hash key in Amazon's DynamoDB. The table also has Range key in it.</p>
  
  <p>I am using a NodeJS library which is a wrapper around AWS DynamoDB REST API. - 
  <a href="https://www.npmjs.org/package/dynamodb">Node-DynamoDB</a></p>
  
  <p>DynamoDB only returns 1 MB worth of results with each query. To fetch reminder of results, it includes <strong>lastEvaluatedKey</strong> . We can include this in another query to fetch another 1 MB worth of results and so on...</p>
  
  <p>I am facing difficulty in writing a recursive async function which should hit the service sequentially till i can get all the results back. (table will never have more than 10 MB for my use case, no chance of a runaway query)</p>
  
  <p>Some pseudo code for illustration:</p>
  
  <pre><code>ddb.query('products', primarykey, {}, function(err,result){
      //check err
      if(result &amp;&amp; result.lastEvaluatedKey){
          //run the query again
          var tempSet = result.items;
          //temporarily store result.items so we can continue and fetch remaining items.
      }
      else{
          var finalSet = result.items;
          //figure out how to merge with items that were fetched before.
      }
  });
  </code></pre>