【问题标题】:DynamoDB result as flat JSONDynamoDB 结果为平面 JSON
【发布时间】:2022-01-10 07:33:10
【问题描述】:

我正在尝试从 DynamoDB 获取作为平面 JSON 的项目。

这是项目 JSON 结构。

    {
 "userID": "3201054407a58",
 "createdDate": 1643769000000,
 "modifiedDate": 1643769000000,
 "attributes": {
  "zipCode": "683562",
  "country": "India",
  "deleteFlag": "1"
 }
}

分区键:userID 排序键:createdDate

我使用的查询如下所示。

let params = {
        "TableName": 'user',
        KeyConditionExpression: "#uid = :id AND createdDate BETWEEN :minDate AND :maxDate",
        FilterExpression: '#attr.#df = :deleteFlag'
        ExpressionAttributeValues: {
            ':id': uuid,
            ':minDate': from,
            ':maxDate': to,
            ':deleteFlag': "0"
        },
        ExpressionAttributeNames: {
            '#uid': 'userID',
            '#attr': 'attributes',
            "#df": "deleteFlag"
        }
    };

我想得到如下结果

{
     "userID": "3201054407a58",
     "createdDate": 1643769000000,
     "modifiedDate": 1643769000000,
      "zipCode": "683562",
      "country": "India",
      "deleteFlag": "1"
 }

请帮忙。

【问题讨论】:

  • 这不是你可以用 DynamoDB 做的事情,在 javascript 中处理查询的结果。
  • 什么不起作用?有什么问题?

标签: node.js dynamodb-queries amazon-dynamodb


【解决方案1】:

DynamoDB 无法做到这一点,这纯粹是一个 JavaScript 问题。您可以在从服务器获取结果后通过创建一个新对象来实现它:

function FlattenAttributes(result){
    let flattened = {
        ...result,
        ...result.attributes
    }
    delete flattened.attributes
    return flattened
}

【讨论】:

    猜你喜欢
    • 2022-12-12
    • 1970-01-01
    • 2016-09-21
    • 2018-06-18
    • 2011-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多