The*_*rus 5 javascript amazon-web-services amazon-dynamodb
如何在 dynamodb 中查询匹配特定规则的所有项目?
我正在建立一个在线商店(如 Asos),在 dynamodb 中我有一个产品表。所有产品都有“类别”字段。所以我只想做一个简单的查询,我说类似的话
FROM products WHERE category == 'trainers'
Run Code Online (Sandbox Code Playgroud)
我已经设法让它工作,所以我扫描整个表并向我返回所有产品,但我现在想要更具体的查询
我假设我想使用类似的东西:KeyConditionExpression但是当我这样做时我不断收到错误
编辑后的问题:
代码:
componentDidMount() {
console.log('mounted');
const AWS = window.AWS;
const params = {
TableName: 'Products',
FilterExpression: "category = trainers"
};
...secret key code
ddb.scan(params, (err, data) => {
if (err) {
console.log(err, err.stack);
} else {
console.log(data);
this.setState({ products: data })
}
});
Run Code Online (Sandbox Code Playgroud)
尝试这个
var params = {
ExpressionAttributeValues: {
":catval": {
S: "trainers"
}
},
FilterExpression: "category = :catval",
TableName: "Products"
};
dynamodb.scan(params, function(err, data) {
if (err) console.log(err, err.stack);
else console.log(data);
Run Code Online (Sandbox Code Playgroud)
编辑:您不能在表达式中使用文字。您定义一个 ExpressionAttributeValue,我将您的称为“:catval”,但您可以将其称为任何您喜欢的名称。“S”表示字符串,因此基本上您可以定义一个具有 String 类型和值“trainers”的 ExpressionAttributeValue。然后,当您应用 FilterExpression 时,您将放入 ExpressionAttributeValue,而不是文字。
| 归档时间: |
|
| 查看次数: |
11671 次 |
| 最近记录: |