首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用节点js和aws dynamo db进行子数组分页

如何使用节点js和aws dynamo db进行子数组分页
EN

Stack Overflow用户
提问于 2020-03-08 12:24:01
回答 1查看 1.1K关注 0票数 0

我想使用and和节点js对"car_types“进行分页。我不想用js,我们能用发电机db吗?我要总项目,总页面,页面大小,当前页面和数据的响应。

代码语言:javascript
复制
{
  "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代码,我用这些代码来获得结果。

代码语言:javascript
复制
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查询的结果:

代码语言:javascript
复制
{
"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"
    }
  ]
}
EN

回答 1

Stack Overflow用户

发布于 2020-03-08 13:47:30

在执行DynamoDb时,scan/query将返回1MB数据,如果有任何剩余数据,还会添加LastEvaluatedKey以获得结果。如果您通过ExclusiveStartKey: LastEvaluatedKey,您可以使用分页方式进行scan/query。我在你的方法上增加了一些调整,它可能对你有帮助。

编辑:您可以通过将Limit: Number传递给您的params来限制结果。这将允许您限制返回的项目计数,您可以从LastEvaluatedKey获得更多信息。

代码语言:javascript
复制
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);
  });
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60587421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档