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

如何为PutItemAsync定义嵌套属性?DynamoDB模型构建求助

解决DynamoDB嵌套属性"Options"的构建问题

DynamoDB的Document类支持嵌套对象结构,你需要通过创建子Document来实现Options的嵌套,而不是用点分隔的键名。以下是正确的实现方式:

手动构建嵌套文档

var storeInfo = new Document();
// 设置分区键与排序键
storeInfo["City"] = storeBody.City;
storeInfo["NrStore"] = storeBody.NrStore;

// 创建Options子文档并填充属性
var optionsDoc = new Document();
optionsDoc["Address"] = storeBody.Options.Address;
optionsDoc["Square"] = storeBody.Options.Square;
optionsDoc["ParkingSize"] = storeBody.Options.ParkingSize;
optionsDoc["HasGroceries"] = storeBody.Options.HasGroceries;
optionsDoc["HasHouseholdGoods"] = storeBody.Options.HasHouseholdGoods;

// 将子文档绑定到主文档的Options键
storeInfo["Options"] = optionsDoc;

// 执行写入操作
await dynamoDbClient.PutItemAsync(storeInfo);

简化写法(利用对象序列化)

如果storeBody.Options是一个实体类对象,可以直接通过Document.FromObject快速转换为嵌套文档,省去逐个赋值的步骤:

var storeInfo = new Document();
storeInfo["City"] = storeBody.City;
storeInfo["NrStore"] = storeBody.NrStore;

// 直接将Options对象转为嵌套文档
storeInfo["Options"] = Document.FromObject(storeBody.Options);

await dynamoDbClient.PutItemAsync(storeInfo);

两种方式最终都会在DynamoDB中生成你需要的目标结构,Options会以JSON对象的形式存储为嵌套属性。

内容的提问来源于stack exchange,提问作者Burning Daylight

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 12:15:31