首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询DynamoDB时感到困惑

查询DynamoDB时感到困惑
EN

Stack Overflow用户
提问于 2017-05-03 21:22:52
回答 1查看 397关注 0票数 0

我的DynamoDB中有以下数据。

我正在努力实现下面的结果。浏览整个表并获取management is NULL and Location is Midwest所在位置的行。

我最初尝试使用下面的查询来匹配Null

代码语言:javascript
复制
var scanningParameters = {
    TableName: 'LOB',
    FilterExpression: "#mgmt contains NULL",
    ExpressionAttributeNames: {
        "#mgmt": "Management",
    }
};

docClient.scan(scanningParameters, onScan);
function onScan(err, data) {
    if (err) {
        console.error("Unable to scan the table. Error JSON:", JSON.stringify(err, null, 2));
    } else {
        // print all the movies
        console.log("Scan succeeded.");
        data.Items.forEach(function (data) {
            console.log(
                data.lineofbusiness + " name : ",
                data.name);
        });

        if (typeof data.LastEvaluatedKey != "undefined") {
            console.log("Scanning for more...");
            scanningParameters.ExclusiveStartKey = data.LastEvaluatedKey;
            docClient.scan(scanningParameters, onScan);
        }
    }
}

我得到的异常是

代码语言:javascript
复制
{
    "message": "Invalid FilterExpression: Syntax error; token: \"contains\", near: \"#mgmtcontains NULL\"",
    "code": "ValidationException",
    "time": "2017-05-03T13:21:11.611Z",
    "requestId": "0T0GU59HRJ24P96D42H9QNC97RVV4KQNSO5AEMVJF66Q9ASUAAJG",
    "statusCode": 400,
    "retryable": false,
    "retryDelay": 13.73953651636839
}

请让我知道我哪里错了,以及我如何解决这个问题。

EN

回答 1

Stack Overflow用户

发布于 2017-05-03 21:52:45

这是" NULL "值的扫描项目(即数据为NULL的字符串属性)。

我假设Management属性是包含字符串值"NULL“的字符串数据类型。

代码:-

代码语言:javascript
复制
var AWS = require("aws-sdk");
var creds = new AWS.Credentials('akid', 'secret', 'session');

AWS.config.update({
    region: "us-west-2",
    endpoint: "http://localhost:8000",
    credentials : creds
});

var docClient = new AWS.DynamoDB.DocumentClient();

var params = {
    TableName: "lob",
    FilterExpression: "#mgmt = :mgmtVal",
    ExpressionAttributeNames: {
        "#mgmt": "Management",
    },
    ExpressionAttributeValues : {
        ":mgmtVal" : "NULL"
    }
};

docClient.scan(params, onScan);
var count = 0;

function onScan(err, data) {
    if (err) {
        console.error("Unable to scan the table. Error JSON:", JSON.stringify(err, null, 2));
    } else {
        console.log("Scan succeeded.");
        data.Items.forEach(function(itemData) {
           console.log("Item :", ++count,JSON.stringify(itemData));
        });

        if (typeof data.LastEvaluatedKey != "undefined") {
            params.ExclusiveStartKey = data.LastEvaluatedKey;
            docClient.scan(params, onScan);
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43761351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档