javascript - 使用包含的 lambda (node.js) FilterExpression 的 DynamoDB 查询

标签 javascript node.js lambda amazon-dynamodb

Here is the table structure. In posts column it is a list of strings
所以我一直在阅读并尝试将 filterExpression 与“包含”一起使用。 node.js 中的文档只需要使用 a CONTAINS b 其中 a 可以是一个列表,而 b 对我来说是一个字符串 I am寻找。

var db = new doc.DynamoDB();

var params = {
    TableName: "WIT_Search",
    KeyConditionExpression: "#type = :tag and #key between :start AND :end",
    FilterExpression: "#tag contains :post",
    ExpressionAttributeNames: {
        "#type": "type",
        "#tag": "posts",
        "#key": "key",
    },
    ExpressionAttributeValues: {
        ":tag": "tag",
         ":start": tag+"_",
         ":end": tag+"_999",
         ":post": postID
    }
};

console.log(params);

db.query(params, function(err, data) {
    if (err) {
        console.error("Unable to query. Error:", JSON.stringify(err, null, 2));
    } else {
        console.log("Query succeeded.");
        console.log('Count =',data.Items.length);

        if (data.Items.length > 0){
            console.log("post exists in tag");
        }else{
            console.log("post doesnt exist in tag");
        }
    }
});


每当我进行测试时,它都会给我这条消息:

  Unable to query. Error: {
      "message": "Invalid FilterExpression: Syntax error; token: \"contains\", near: \"#tag contains (\"",
      "code": "ValidationException",
    }

奇怪的是在 AWS 控制台上它可以正常工作,只是在 lambda 中与 node.js 一起使用时会出现此错误。

最佳答案

这是正确的语法。

FilterExpression : 'contains (#tag, :post)'

关于javascript - 使用包含的 lambda (node.js) FilterExpression 的 DynamoDB 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45193408/

相关文章:

javascript - 为什么我的代码不起作用?

javascript - 在 Ruby 方法中捕获变量

c# - foreach (where x => x.PROPERTY),如何设置PROPERTY?

c# - 替换 lambda 表达式中的参数

linq - SelectList 扩展 - 情侣表达式

javascript - 如何修复: Warning: Functions are not valid as a React child

javascript 仅带回文本的特定部分(codeigniter 和 JQuery)

node.js - Sequelize BelongsToMany 自引用反向 SQL QUERY

如果对象中存在值,则使用 Javascript?

node.js - 使用 REST API 的发布订阅 - 请求缺少有效的 API key