簡體   English   中英

使用適用於 DynamoDB 的 AWS-SDK,createSet 創建 Map 而不是 Set

[英]Using AWS-SDK for DynamoDB, createSet creates a Map instead of a Set

如果您要創建一個新項目並留下一個空列表(即{ a: 'string', b: [] }在您的參數中,它會將其轉換為列表屬性。我真正想要的是一個字符串集屬性,或 SS。

我仔細閱讀了文檔並找到了createSet並希望這能解決我的問題。 但不幸的是,它創建了一個 Map 屬性。 目前,這就是我創建它的方式:

const aws = require('aws-sdk');

(async () => {
    const docClient = new aws.DynamoDB.DocumentClient();

    const params = {
        TableName: 'some_table_in_dynamodb',
        Item: {
            a: 'some string',
            b: docClient.createSet([])
        }
    };

    const response = await docClient.put(params).promise();
    console.log(response);
})();

我通過在 DynamoDB 上使用 UI 獲得了解決方案:列表不能為空,否則會將其轉換為 Map 屬性。 要解決此問題,只需添加一個空字符串。

const aws = require('aws-sdk');

(async () => {
    const docClient = new aws.DynamoDB.DocumentClient();

    const params = {
        TableName: 'some_table_in_dynamodb',
        Item: {
            a: 'some string',
            b: docClient.createSet(['']) // ADD STRING FOR SS ATTRIBUTE
        }
    };

    const response = await docClient.put(params).promise();
    console.log(response);
})();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM