我有一個簡單的表DynamoDb地方,並嘗試把一個項目是這樣的:布爾領域
var options = {name : "test",
creator : "Testcreator", description : "test",
moderators : ["Testmoderator"]};
var obj = {
name: {"S": options.name},
restricted: {"BOOL": options.restricted || false},
creator: {"S": options.creator},
description: {"S": options.description || ""},
moderators: {"SS" : options.moderators || []}
};
var params = {
"TableName": "MY_TABLE",
"Item": obj,
Expected: {
name: {Exists: false}
}
};
dynamodb.putItem(params, function (err, data) {
ppJson(err);
});
根據該文件,布爾值是允許的,把我收到以下錯誤當我在DynamoDB本地shell中嘗試以下代碼時:
"code":"UnexpectedParameter",
"message":"Unexpected key 'BOOL' found in params.Item['restricted']"
...
在我的代碼中是否有錯誤,或者這是JavaScript API的問題?
確保'options.restricted'是一個有效的'BOOL'值。硬編碼「真」,看它是否有效。哪些屬性可以成爲你的主鍵?此外,空字符串(「」)對於字符串類型的屬性無效。如果您沒有要分配的實際字符串,則只需完全省略該屬性。 – bsd
我也建議你使用DynamoDB Document API來協助編組過程:https://github.com/awslabs/dynamodb-document-js-sdk – bsd
嗨,謝謝你的建議。 Document API看起來非常有用。不幸的是,硬編碼是正確的,因爲限制字段的值不起作用。 – AlexanderF