gpt4 book ai didi

amazon-web-services - Dynamodb 更新表达式 : "REMOVE #items[0]" appends new list element?

转载 作者:行者123 更新时间:2023-12-04 15:42:05 26 4
gpt4 key购买 nike

我有一个包含列表 items 的 Dynamodb 表。给定指定的 index(使用索引 0 进行测试),我希望从此列表中删除一个元素:

docClient.update({
TableName: 'cart',
Key: { 'id': id },
ReturnValues: 'ALL_NEW',
UpdateExpression: "REMOVE #items[0]",
ExpressionAttributeNames : {
"#items": "items"
}
}, function(err, data) {
})

它不是从项目列表中删除元素 0,而是附加一个新元素( map )(请参阅最后附加元素的附图)

...我做错了什么?另外,我应该如何用一个变量代替上面的 0?我试过:

...
UpdateExpression: "REMOVE #items[:index]",
ExpressionAttributeValues :
":index": index
},
...

...导致错误:Invalid UpdateExpression: Syntax error;标记:\":index\",附近:\"[:index]

非常感谢!

dynamodb table

AWS-SDK:^2.500.0

节点:v10.16.0

--编辑:1) AWS SDK 不支持带 REMOVE 的 ExpressionAttributeValues,因此我必须改为 "REMOVE List["+ listNumber + "]"。2) 将 UpdateExpression: "REMOVE #items[0]" 更改为 UpdateExpression: "REMOVE #i[0]" forExpressionAttributeValues : { ":i": items } 正确删除了元素 0;但是,DynamoDB 仍在附加一个新的列表元素 Index : i,其中 i 是我要删除的索引。

这是一个错误吗?

dynamodb appending items

最佳答案

我能够从 cart_items 字段中删除一个元素,如下所示 -

表名- 购物车

这是我的数据-

{
"id": "1",
"cart_items": [
"1", "2"
]
}

AWS CLI 查询以从 cart_items 数组中删除第一个元素 -

aws dynamodb update-item \
--table-name cart \
--key '{"id":{"S":"1"}}' \
--update-expression "REMOVE cart_items[0]" \
--return-values ALL_NEW

关于amazon-web-services - Dynamodb 更新表达式 : "REMOVE #items[0]" appends new list element?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57518066/

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