Ohs*_*sik 5 javascript amazon-web-services amazon-dynamodb reactjs serverless-framework
我正在尝试在我的React应用程序上执行搜索功能。
我有此DynamoDB表:
---------------------
movie_id | movie_name
---------------------
1 | name a
---------------------
2 | name b
---------------------
Run Code Online (Sandbox Code Playgroud)
我想要一个搜索功能来搜索React应用程序的搜索输入中的“ b”,并从数据库中获取“名称b”。
我尝试过但没有query用,CONTAINS而且似乎也不是正确的方法。
const SEARCH_KEYWORD = "b";
let params = {
TableName : 'TABLE_NAME',
KeyConditionExpression: "contains(#movie_name, :movie_name)",
ExpressionAttributeNames:{
"#movie_name": 'movie_name'
},
ExpressionAttributeValues:{
":movie_name": SEARCH_KEYWORD
}
};
documentClient.query(params, function(err, data) {
console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
使用DynamoDB在React应用上创建搜索功能的最佳方法是什么?
通过搜索关键字运行查询以检查数据是否包含关键字值甚至有意义吗?
Zan*_*non 11
该CONTAINS运算符在queryAPI 中不可用。您需要为此使用scanAPI(请参阅此链接)。
请尝试以下操作:
const AWS = require('aws-sdk');
const documentClient = new AWS.DynamoDB.DocumentClient();
const SEARCH_KEYWORD = "b";
let params = {
TableName : 'TABLE_NAME',
FilterExpression: "contains(#movie_name, :movie_name)",
ExpressionAttributeNames: {
"#movie_name": "movie_name",
},
ExpressionAttributeValues: {
":movie_name": SEARCH_KEYWORD,
}
};
documentClient.scan(params, function(err, data) {
console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
结果:
{
Items: [
{
movie_id: 2,
movie_name: 'name b'
}
],
Count: 1,
ScannedCount: 2
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3828 次 |
| 最近记录: |