gpt4 book ai didi

amazon-dynamodb - DynamoDB PutItem 然后 UpdateItem 与 ReturnValues ALL_NEW 的一致性

转载 作者:行者123 更新时间:2023-12-05 08:11:54 26 4
gpt4 key购买 nike

当使用 PutItem 添加新项目,然后使用返回值设置为 ALL_NEWUpdateItem 更新它时,是否期望返回值会强一致吗?

例如放置一个元素;

{key: 1a a: 1}

然后更新项目;

{key: 1, b: 2}

我希望 ReturnValues: ALL_NEW 返回

{key: 1, a: 1, b: 2}

但事实并非如此?

最佳答案

我已经在成功执行 put item 时更新了 item 并得到了您预期的结果。

注意:测试在 DynamoDB 本地执行。

ALL_NEW - Returns all of the attributes of the item, as they appear after the UpdateItem operation.

示例代码:-

var docClient = new AWS.DynamoDB.DocumentClient();

var table = "post";

var paramsPut = {
TableName: table,
Item: {
"postId": '16',
"Pos": {
"key": "1a", "a": "1"
}
}
};

var paramsUpdate = {
TableName: "post",
Key: {
"postId": "16"
},
UpdateExpression: "SET Pos.#key = :keyVal, Pos.b = :keyVal2",
ExpressionAttributeNames: {
"#key": "key"
},
ExpressionAttributeValues: {
":keyVal": "1",
":keyVal2": "2"
},
ReturnValues: "ALL_NEW"
};

console.log("Adding a new item...");
docClient.put(paramsPut, function (err, data) {
if (err) {
console.error("Unable to add item. Error JSON:", JSON.stringify(err,
null, 2));
} else {
console.log("Added item:", JSON.stringify(data, null, 2));

console.log("Then Updating the item...");
docClient.update(paramsUpdate, function (err, data) {
if (err) {
console.error("Unable to update item. Error JSON:", JSON.stringify(err, null, 2));
} else {
console.log("UpdateItem succeeded:", JSON.stringify(data));
}
});
}
});

输出:-

Adding a new item...
Added item: {}
Then Updating the item...
UpdateItem succeeded: {"Attributes":{"Pos":{"a":"1","b":"2","key":"1"},"postId":
"16"}}

关于amazon-dynamodb - DynamoDB PutItem 然后 UpdateItem 与 ReturnValues ALL_NEW 的一致性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45728858/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com