1

dynamodb.query を呼び出してすべてのアイテムを取得するにはどうすればよいでしょうか?

ドキュメントには、の存在を探す必要があると記載されていますLastEvaluatedKey効率的な方法ですべてのアイテムを集約するにはどうすればよいでしょうか?

app.get(path, function (req, res) {
  var allItems = [];
  var params = {
    TableName: tableName,
    "IndexName": "status-index",
    "KeyConditionExpression": "#attrib_name = :attrib_value",
    "ExpressionAttributeNames": { "#attrib_name": "status" },
    "ExpressionAttributeValues": { ":attrib_value": req.query.status },
    "ScanIndexForward": false
  };

  dynamodb.query(params, onQuery);

  function onQuery(err, data) {
    if (err) {
      res.json({ error: 'Could not load items: ' + err });
    } else {
      // Should I be aggregating all the items like this?
      allItems = allItems.concat(data.Items);

      // Then should I set it to res like this to return all the items?
      res.json(allItems);

      if (typeof data.LastEvaluatedKey != 'undefined') {
        params.ExclusiveStartKey = data.LastEvaluatedKey;
        dynamodb.query(params, onQuery);
      }
    }
  }
});

コード内のコメントを見てください。ここで、すべての項目を集約して応答を返すための適切なコードが必要だと思います。

私は DynamoDB と AWS Amplify にかなり慣れていないため、これをデバッグする方法をまだ見つけていません。AWS 増幅バックアップ GET API でこれをデバッグする簡単な方法があるかどうかも教えてください。

4

2 に答える 2