Dynamo.DB中的必需属性

5
我正在使用 Dynamo.DB,并遵循 Node.JS 的 "https://www.npmjs.org/package/dynamodb";我想知道如何将属性设置为“必需”?
这里有一个我在文档中找到的例子,但我不确定 Dynamo.DB 是否支持“必需”属性。
// flat [string, number, string array or number array] based json object
var item = { score: 304,
             date: (new Date).getTime(),
             sha: '3d2d6963',
             usr: 'spolu',
             lng: ['node', 'c++'] };

ddb.putItem('a-table', item, {}, function(err, res, cap) {});
1个回答

8

我认为你不能这样做。在DynamoDB中,只有主键是必须的,因为它是“无模式”的,所以在一个“无模式”的数据库中,在一个字段上需要一个必需的属性并没有实际意义。


正确 - 在 DynamoDB(一种无模式数据库)中,除了主键之外,没有办法将属性标记为必需的。唯一的例外是,如果您在表中放置具有辅助索引的项目,并且包括索引键(它们是可选的),则它们必须具有与您在 CreateTable 调用中定义的索引模式中定义的类型相同的类型。 - David Yanacek
由于DynamoDB是“无模式”的,我想知道对于不是分区(主)键的字段使用AttributeDefinitions是否有任何好处?无论字段是否在AttributeDefinitions中定义,使用{ AttributeName:“...”,AttributeType:“...”} DynamoDB都会保存它。 - Srle
@Srle 我仍在学习DDB,但看起来你创建的任何本地二级索引的排序键和投影属性必须在表上定义。然而,它们不必为每个项目都有值,因为稀疏索引是允许的。 - David Harkness

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接