Amazon dynamodb DynamoDB-读取项目并返回数组大小

Amazon dynamodb DynamoDB-读取项目并返回数组大小,amazon-dynamodb,Amazon Dynamodb,我在DynamoDB表中有一个项目。该项目如下所示: { data: [ 1, 2, 3, 4, 5, 6 ] more_data: [ 2, 3, 4, 5, 6, 7 ] } 使用ProjectionExpression,我可以执行GetItem,只返回数据,或者返回数据[0]。但有两件事我搞不清楚: 如何返回数组大小数据。大小 如何返回数组的子集数据[2-10] ProjectionExpression文档似乎没有涵盖这一点。有什么线索吗?1)DynamoDB没有函数来获取列

我在DynamoDB表中有一个项目。该项目如下所示:

{
  data: [ 1, 2, 3, 4, 5, 6 ]
  more_data: [ 2, 3, 4, 5, 6, 7 ]
}
使用ProjectionExpression,我可以执行
GetItem
,只返回
数据
,或者返回
数据[0]
。但有两件事我搞不清楚:

  • 如何返回数组大小<代码>数据。大小
  • 如何返回数组的子集<代码>数据[2-10]
ProjectionExpression文档似乎没有涵盖这一点。有什么线索吗?

1)DynamoDB没有函数来获取
列表的大小。可以使用
length
函数在客户端找到数组元素的大小

data.Item.records.length
给出数组元素
records
的长度。
记录是DynamoDB表中的列表

docClient.get(params, function(err, data) {
    if (err) {
        console.error("Unable to read item. Error JSON:", JSON.stringify(err, null, 2));
    } else {
        console.log("GetItem succeeded:", JSON.stringify(data, null, 2));
        console.log(data.Item[0].records.length);
    }
});
2) 在子数组中,语法应该是这样的。DynamoDB不支持像
'records[1-3]'
这样的范围

ProjectionExpression: 'records[0], records[1]',
3) DynamoDB没有获取列表中最后一项的函数。然而,您可以在客户端获得它。我有
记录
列表。我使用
itemValue.records[itemValue.records.length-1]

docClient.query(params, function(err, data) {
    if (err) {
        console.error("Unable to read item. Error JSON:", JSON.stringify(err,
                null, 2));
    } else {
        console.log("GetItem succeeded:", JSON.stringify(data, null, 2));

        data.Items.forEach(function(itemValue) {
            console.log (itemValue.records[itemValue.records.length - 1]);
        });     
    }
});

谢谢,那很有帮助。是否有一个投影表达式返回数组的最后一项?那么,我们如何对列表中的所有项使用投影表达式呢?示例:记录[]。名称/记录[]。名称/记录。名称