0
我对DynamoDB很新颖。我想整理我的数据库,使得它看起来像如下:将DynamoDB中的数据组织为映射列表
{
userId : userID,
phoneMap :
[
{
name: Joe,
phone: +16712232312
},
{
name: Ron,
phone: +18972345126
}
]
}
我能够将数据添加到我的列表使用下面的代码调用phoneMap
:
EntryService.prototype.update = function (userId, name, phone, cb) {
var phoneMapToAdd = {
name: name,
phone: phone
};
this.dynamodb.update({
TableName: "phoneMapTable",
Key: { "userId": userId },
UpdateExpression: "SET #phoneMap = list_append(#phoneMap, :entry)",
ExpressionAttributeNames: { "#phoneMap": "phoneMap" },
ExpressionAttributeValues: { ":entry": [phoneMapToAdd] },
}, cb);
};
但是,我不能更新现有条目或从地图上删除数据。下面的代码也不检查重复项。有没有更好的方法来做到这一点?
你能提供你有错误信息吗? –
列表不检查重复项。只设置检查重复项(SS或NS)。 – notionquest
谢谢@notionquest。我做了一个解决方法。对于删除,我找出必须删除的索引并使用remove表达式和call update。类似地,对于重复检查,我解析整个列表并查看是否已有该名称的条目,并且如果条目已存在且电话号码相同,则不创建新条目。 –