最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

从不进行扫描的表中获取所有项目

IT培训 admin 10浏览 0评论

从不进行扫描的表中获取所有项目

目前,我具有使用SCAN选项从DynamoDB表中获取所有项目的功能。这是一种昂贵的方法,我更喜欢使用QUERY选项。但是,查看文档似乎不是一种使用QUERY选项检索所有项目的简单方法-它需要某种条件。

示例

var params = {
    TableName : "Movies",
    KeyConditionExpression: "#yr = :yyyy",
    ExpressionAttributeNames:{
        "#yr": "year"
    },
    ExpressionAttributeValues: {
        ":yyyy": 1985
    }
};

docClient.query(params, function(err, data) {
    if (err) {
        console.error("Unable to query. Error:", JSON.stringify(err, null, 2));
    } else {
        console.log("Query succeeded.");
        data.Items.forEach(function(item) {
            console.log(" -", item.year + ": " + item.title);
        });
    }
});

期望

var params = {
    TableName : "Movies"  
};

docClient.query(params, function(err, data) {
    if (err) {
        console.error("Unable to query. Error:", JSON.stringify(err, null, 2));
    } else {
        console.log("Query succeeded.");
        data.Items.forEach(function(item) {
            console.log(" -", item.year + ": " + item.title);
        });
    }
});

是否可以使用QUERY从表中检索所有数据?我曾考虑过使用BEGINS_WITH等,但是所有的主键都是不同的/随机的,并且不以特定的字符或短语开头。

回答如下:

通过查询的唯一方法是分别遍历每个分区键。

我建议您查看围绕您的查询建立的二级索引,这样可以提高效率:https://docs.aws.amazon/amazondynamodb/latest/developerguide/SecondaryIndexes.html

从不进行扫描的表中获取所有项目

目前,我具有使用SCAN选项从DynamoDB表中获取所有项目的功能。这是一种昂贵的方法,我更喜欢使用QUERY选项。但是,查看文档似乎不是一种使用QUERY选项检索所有项目的简单方法-它需要某种条件。

示例

var params = {
    TableName : "Movies",
    KeyConditionExpression: "#yr = :yyyy",
    ExpressionAttributeNames:{
        "#yr": "year"
    },
    ExpressionAttributeValues: {
        ":yyyy": 1985
    }
};

docClient.query(params, function(err, data) {
    if (err) {
        console.error("Unable to query. Error:", JSON.stringify(err, null, 2));
    } else {
        console.log("Query succeeded.");
        data.Items.forEach(function(item) {
            console.log(" -", item.year + ": " + item.title);
        });
    }
});

期望

var params = {
    TableName : "Movies"  
};

docClient.query(params, function(err, data) {
    if (err) {
        console.error("Unable to query. Error:", JSON.stringify(err, null, 2));
    } else {
        console.log("Query succeeded.");
        data.Items.forEach(function(item) {
            console.log(" -", item.year + ": " + item.title);
        });
    }
});

是否可以使用QUERY从表中检索所有数据?我曾考虑过使用BEGINS_WITH等,但是所有的主键都是不同的/随机的,并且不以特定的字符或短语开头。

回答如下:

通过查询的唯一方法是分别遍历每个分区键。

我建议您查看围绕您的查询建立的二级索引,这样可以提高效率:https://docs.aws.amazon/amazondynamodb/latest/developerguide/SecondaryIndexes.html

发布评论

评论列表 (0)

  1. 暂无评论