You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DynamoDB中Set与List的区别及Set类型对应的属性标识是什么?

DynamoDB List与Set类型差异及使用说明

一、Set类型与List类型的核心差异

  • 数据规则不同:List是有序、允许元素重复的集合;Set是无序、强制元素唯一的集合,写入重复值时DynamoDB会自动去重,不会抛出错误。
  • 存储结构不同:List支持混合存储不同类型的元素,因此每个元素都需要单独声明数据类型(就是你现有结构里每个值外面包的"S"标识);Set要求所有元素必须为同一类型,不需要为单个元素标注类型,存储结构更简洁。
  • 操作能力不同:Set支持原子级增删操作,调用API时用ADD、DELETE指令可以直接对单个元素进行新增、移除,不需要先读取整个集合再修改回写;List没有这类原子操作,要修改元素必须全量读写整个列表。

二、Set类型的属性标识

你当前存储的位置都是字符串类型,对应Set的类型标识为SS(String Set的缩写),除此之外还有数字Set标识NS、二进制Set标识BS,用来替代List的L标识。

三、修改后的Put Item请求JSON示例

{
    "Sensor" : {
        "S": "Sensor1"
    },
    "SensorDescription": {
        "S" : "Sensor to meassure water temperature"
    },
    "ImageFile" : {
        "S" : "/Sensors/images/acoustic-elementarray.jpg"
    },
    "SampleRate":{
        "N" : "2048"
    },
    "Locations" : {
        "SS": [
            "Culpeper VA",
            "Colorado Springs Co"
        ]
    }
}

补充说明:如果你的业务需要保留多个位置的排序顺序、或者允许存储重复的位置记录,继续使用List类型更符合需求;如果需要对位置集合做频繁的单个元素增删、需要保证位置不重复,改用String Set更合适。

内容的提问来源于stack exchange,提问作者Sergey V.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 05:36:01