Node.js 如何使用node js和aws dynamo db进行子数组分页

Node.js 如何使用node js和aws dynamo db进行子数组分页,node.js,amazon-dynamodb,dynamodb-queries,Node.js,Amazon Dynamodb,Dynamodb Queries,我想使用aws dynamo db和node js对“汽车类型”进行分页。我不想使用js,我们可以使用dynamo db吗?我想要总项目,总页面,页面大小,当前页面和数据的响应 { "uid": "222-3333", "car_types": [ { "description": "fsdf", "title": "sdfsd" }, { "description": "fdfdfdf", "title": "df

我想使用aws dynamo db和node js对“汽车类型”进行分页。我不想使用js,我们可以使用dynamo db吗?我想要总项目,总页面,页面大小,当前页面和数据的响应

{
  "uid": "222-3333",
  "car_types": [
    {
      "description": "fsdf",
      "title": "sdfsd"
    },
    {
      "description": "fdfdfdf",
      "title": "dfdfd"
    },
    {
      "description": "dasda",
      "title": "asdas"
    },
    {
      "description": "dasd",
      "title": "asdas"
    },
    {
      "description": "dasdasd",
      "title": "asdas"
    }
  ]
}
Aws Dynamo DB和Node js代码,我用它来获得结果

export function get_car_types_list(){

  var params = {
    TableName : "cms_cars",
    KeyConditionExpression: "#uid = :uid",
    ExpressionAttributeNames:{
        "#uid": "uid"
    },
    ExpressionAttributeValues: {
        ":uid": "222-3333"
    }
};

return docClient.query(params).promise()
.then(function(data) {
      console.log(data);
      return data;

}).catch( (err) => {
  console.log('got Error', err);
  });


}
我想要使用dynamo db查询的结果:

{
"totalItem":5,
"totalPage":1,
"pageSize":"1",
"currentPage":"1",
  "car_types": [
    {
      "description": "fsdf",
      "title": "sdfsd"
    },
    {
      "description": "fdfdfdf",
      "title": "dfdfd"
    },
    {
      "description": "dasda",
      "title": "asdas"
    },
    {
      "description": "dasd",
      "title": "asdas"
    },
    {
      "description": "dasdasd",
      "title": "asdas"
    }
  ]
}

当执行
scan/query
时,DynamoDb将返回1MB数据,如果有任何剩余数据,也会将
LastEvaluatedKey
添加到结果中。如果您通过了
ExclusiveStartKey:LastEvaluatedKey
,则可以
通过分页扫描/查询。我对你的方法做了一些调整,这可能会对你有所帮助

编辑:您可以通过向参数传递
limit:Number
来限制结果。这将允许您限制退货数量,您可以使用
LastEvaluatedKey
获得更多

export function get_car_types_list(LastEvaluatedKey){

  var params = {
    TableName : "cms_cars",
    KeyConditionExpression: "#uid = :uid",
    ExpressionAttributeNames:{
        "#uid": "uid"
    },
    ExpressionAttributeValues: {
        ":uid": "222-3333"
    },
    Limit: 5,
};
if (LastEvaluatedKey) {
    params.ExclusiveStartKey = LastEvaluatedKey;
}
return docClient.query(params).promise()
.then(function(data) {
      console.log(data);
      return data;

}).catch( (err) => {
  console.log('got Error', err);
  });
}

谢谢但我想对特定数据(即“汽车类型”)应用分页,而不想对整个结果应用分页。@TahaFarooqui哦,我明白了,但这在DynamoDb中是不可能的。它根本不提供这样的功能。