gpt4 book ai didi

node.js - 具有多个条件的AWS DYNAMODB查询

转载 作者:太空宇宙 更新时间:2023-11-03 22:49:25 25 4
gpt4 key购买 nike

我正在尝试使用此域中的以下查询从 dynamo 数据库获取详细信息,并且 SERVICE 只是键(非主键)

let params = {
TableName: asset_table,
ConsistentRead: true,
ProjectionExpression: 'ID,SERVICE',
KeyConditionExpression: "DOMAIN = :service_name AND SERVICE EQ :service_domain",
ExpressionAttributeValues: {
":service_name": {"S":service },
":service_domain": {"S":domain}
}
};
docClient.scan(params, (err, data) => {
if (err) {
onComplete(err);
} else {
console.log(data);
onComplete(null, {
data
});
}
});

这会给出如下错误

{
"message": "ExpressionAttributeValues can only be specified when using expressions: FilterExpression is null",
"code": "ValidationException",
"time": "2019-01-09T09:47:09.180Z",
"requestId": "0G3C02E6251S2H1IQ2LQUTN04JVV4KQNSO5AEMVJF66Q9ASUAAJG",
"statusCode": 400,
"retryable": false,
"retryDelay": 8.070453867451622
}

最佳答案

scan 方法不接受 params 中的 KeyConditionExpression。相反,您必须使用 FilterExpression 参数。

错误告诉您这一点,因为它可以看到您的 ExpressionAttributeValues 但没有 FilterExpression 使用它们。

根据 AWS 文档 - Working With Scans :

The syntax for a filter expression is identical to that of a condition expression. Filter expressions can use the same comparators, functions, and logical operators as a condition expression. For more information, Condition Expressions.

查看 DDB 文档 here了解如何使用 scan 方法的完整详细信息。

关于node.js - 具有多个条件的AWS DYNAMODB查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54107317/

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