首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用javascript的dynamodb查询单行

使用javascript的dynamodb查询单行
EN

Stack Overflow用户
提问于 2018-04-16 17:55:41
回答 2查看 299关注 0票数 0

不知道这里发生了什么,我跟踪文档,得到错误,所以也许我的表被定义错了?

代码语言:javascript
复制
function parseGET( data, callback )
{
    const params = 
    {
        TableName: data.TableName,
        Key: 
        {
            "workOrder": data.workOrder  // <--number, not a string
        }
    };

    dynamodb.get( params, ( error, data ) =>
    {
        if( error )
            console.log( 'table ERROR:', error );
    ...
    }
}

响应:“提供的键元素与架构不匹配”

代码语言:javascript
复制
Response:
{
  "statusCode": 200,
  "body": "The provided key element does not match the schema",
  "headers": {
    "Content-Type": "application/json",
    "Access-Control-Allow-Origin": "*"
  }
}

如果我做一个扫描,我得到我所有的数据,但我只想得到一个一行。

代码语言:javascript
复制
dynamodb.scan( {"TableName": data.TableName}, ( error, data ) =>
...
data:
{
  "probeCount": "123",
  "rangeCal": "hight",
  "ESID": "1",
  "rangeNom": "1000",
  "nodeCount": "123",
  "password": "123",
  "cableLength": "456",
  "userId": "Onicon",
  "usePasswd": "disable",
  "elevation": "789",
  "workOrder": 789456,
  "rangeMax": "1150",
  "serialNumber": "3"
}
  ],
  "Count": 11,
  "ScannedCount": 11

获得一行在控制台中工作,但我不知道如何通过JS完成同样的工作。

表中的一些细节:

代码语言:javascript
复制
Table name  myTestTable
Primary partition key   workOrder (Number)
Primary sort key    -
Point-in-time recovery  DISABLEDEnable
Time to live attribute  DISABLEDManage TTL
Table status    Active
Creation date   March 22, 2018 at 1:45:09 PM UTC-7
UTC: March 22, 2018 at 8:45:09 PM UTC

Local: March 22, 2018 at 1:45:09 PM UTC-7

Region (N. California): March 22, 2018 at 12:45:09 PM UTC-8
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-20 16:09:36

感谢那些帮忙的人。最终的结果是我有点困惑(和往常一样)。data.workOrder是一串数字,如。"654"使用JSON,而不是654。因此,简单的解决方案是将其转换为实际数字:

data.workOrder = parseInt( data.workOrder, 10 );

现在我的原始查询开始工作了!

票数 0
EN

Stack Overflow用户

发布于 2018-04-16 18:01:26

你有没有试过把你的钥匙的定义修改成.

代码语言:javascript
复制
Key: 
  {
    "workOrder": {"N", data.workOrder}  // <--number, not a string
  }

你可能需要用

代码语言:javascript
复制
data.workOrder.toString()

在定义密钥的时候。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49863490

复制
相关文章

相似问题

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