首页 > 解决方案 > 在 Dynamodb 中,如何为数组添加值,如果文档不存在则创建新的?

问题描述

我正在使用 dynamodb 来存储 websocket connectionIds。一个用户可以有多个 connectionIds。我需要将这些 connectionIds 存储在该 userId 的数组中。因此,我首先需要创建具有 1 个 connectionId 的文档,当收到另一个 connectionId 时,将使用新的 connectionId 更新同一文档的 connectionIds 数组

同样,我想在连接断开时从数组中删除 connectionIds。

输入

{
  userId: "12345",
  connectionId: "abcdef"
}

输出

{
  userId: "12345",
  connectionIds: ["abcdef"]
}

第二输入

{
  userId: "12345",
  connectionId: "ghijk"
}

第二个输出

{
  userId: "12345",
  connectionIds: ["abcdef", ghijk]
}

当连接断开时输入

{
  userId: "12345",
  connectionId: "abcdef"
}

输出

{
  userId: "12345",
  connectionIds: ["ghijk"]
}

标签: databasenosqlamazon-dynamodb

解决方案


推荐阅读