gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 11:33:59 26 4
gpt4 key购买 nike

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com