如何在dynamodb中添加一个空的或数据映射? [英] how to add an empty or data map in dynamodb?
问题描述
我有这样的内容:
{
Records:{}
}
我只想在记录中添加数据,例如:
and I just want to add data inside records like this:
{
Id: 123,
Records:{
10001: { event : "item1" }
}
}
我的第一次尝试:
var params = {
TableName : "Records",
Key : { Id : 123 },
UpdateExpression: 'set Record.#k1.event = :v1',
ExpressionAttributeNames: { '#k1' : 10001},
ExpressionAttributeValues: { ':v1' : 'item1' }
};
因为Record.10001不存在,它给了我错误:
Because Record.10001 doesn't exist, it give me error:
The document path provided in the update expression is invalid for update
$ b $无效b
添加仅支持NUMBER和SET类型,因此不适用于我的情况。
"ADD" only support NUMBER and SET type so its not suitable in my case.
我的第二次尝试(尝试创建一个空的地图) 1st):
My 2nd attempt (trying to create a empty map 1st):
var params = {
TableName : "Records",
Key : { Id : 123 },
UpdateExpression: 'set Record.#k1 = {}',
ExpressionAttributeNames: { '#k1' : 10001},
};
失败,因为我的语法可能不正确,并且我找不到如何为属性创建空映射
It fails as my syntax is probably incorrect and I cannot find how to create a empty map to an attribute.
所以我的问题是如何将结构化对象作为地图或空地图添加到现有项目(如上例)中?
So my question is how do I add structured object as a map or empty map to an existing item like the example above?
我可以轻松地从Amazon DynamoDB数据管理页面上修改数据,因此至少我知道有一种方法可以做到这一点。我只需要知道如何。
I can easily modifying the data from the amazon DynamoDB data management page so at least I know there exist a way to do it. I just need to know how.
谢谢
推荐答案
我不知何故
var params = {
TableName: "Records",
Key: { Id: 123 },
UpdateExpression: 'set Records.#k1 = :v1',
ExpressionAttributeNames: {'#k1': '10001',},
ExpressionAttributeValues: {':v1': { event: 'Yay~' } }
};
您也可以使用
UpdateExpression: 'set Records.#k1 = if_not_exists( Records.#k1, :v1)',
以避免覆盖现有记录。
这篇关于如何在dynamodb中添加一个空的或数据映射?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!