Mysql aws-如何使用user';s来自用户的字符';她叫什么名字?
所以我有这个应用程序,我试图实现一个搜索栏,如果他们输入“Jo”,我调用一个lambda函数,它从我的用户表中查询我的用户:“John Smith”。我制作了一个findRivalTable,其中,我为每个创建的玩家创建了2个对象。每个对象都有一个键:firstTwoLetters,它包含名字或姓氏的前两个字母。第二个键是具有用户ID的用户的名字或姓氏 我附上了一张下表的照片,以使其更清楚。我不知道如何在dynamoDB查询中实现“beginsWith”。我已经用javascript编写了查询代码的开始部分,但需要帮助才能完成。它将用户输入的字母作为输入,然后查询应该返回表中的两个对象,然后我可以从我的用户表中查询用户Mysql aws-如何使用user';s来自用户的字符';她叫什么名字?,mysql,amazon-web-services,aws-lambda,amazon-dynamodb,Mysql,Amazon Web Services,Aws Lambda,Amazon Dynamodb,所以我有这个应用程序,我试图实现一个搜索栏,如果他们输入“Jo”,我调用一个lambda函数,它从我的用户表中查询我的用户:“John Smith”。我制作了一个findRivalTable,其中,我为每个创建的玩家创建了2个对象。每个对象都有一个键:firstTwoLetters,它包含名字或姓氏的前两个字母。第二个键是具有用户ID的用户的名字或姓氏 我附上了一张下表的照片,以使其更清楚。我不知道如何在dynamoDB查询中实现“beginsWith”。我已经用javascript编写了查询代
var dynamodb = new AWS.DynamoDB.DocumentClient();
exports.handler = function(event, context, callback)
{
completeCount = 0;
completeCeiling = 2;
function findPlayer()
{
var params = {
TableName:"Z_DEV_findPlayerTable",
Key:{
"firstLetters": event.inputCharacters
},
};
dynamodb.update(params, function(err, data)
{ if (err) {
console.log("break 1A")
console.log(err, "findPLayer error");
callback(err);
} else {
console.log("break 1B");
completeCount++;
if (completeCount === completeCeiling) {
//cool we have the player! Now lets do a second
query from the user's table from the ID we just got
}
}
});
}
};
想明白了!这就是以下语法:
exports.handler = function(event, context, callback)
{
completeCount = 0;
completeCeiling = 1;
var returnArray = {
}
findPlayer();
function findPlayer()
{
var params =
{
TableName : "Z_DEV_findPlayerTable",
KeyConditions:
{
"firstLetters": {
ComparisonOperator: 'EQ',
AttributeValueList: [
event.first2Letters ]
},
"firstOrLastName":
{
ComparisonOperator: 'BEGINS_WITH',
AttributeValueList: [
event.currentTypedLetters ]
}
},
};
dynamodb.query(params, function(err, data)
{ if (err) {
console.log("break 1A")
console.log(err, "findPLayer error");
callback(err);
} else {
console.log("break 1B");
console.log("my data is", data.Items);
var folderKeys = Object.keys(data.Items);
completeCeiling = folderKeys.length;
for(i = 0; i < folderKeys.length; i++)
{
var filteredPlayer = JSON.stringify(data.Items[folderKeys[i]].firstOrLastName);
var splitString = filteredPlayer.split('+');
var filteredID = splitString[1];
filteredID = filteredID.replace(/['"]+/g, '')
console.log("my filteredPlayer is ", filteredPlayer);
console.log("my filteredID2 is ", filteredID);
getPlayer(filteredID);
}
}
});
}
function getPlayer(playerID) {
var params = {
TableName : "Z_DEV_playerTable",
Key: {
"playerID": playerID
},
};
dynamodb.get(params, function(err, data)
{ if (err) {
console.log(err);
console.log("break 2A");
} else
{
console.log("break 2B");
//console.log("my data.Item is ",data.Item)
if(data.Item != undefined)
{
returnArray[playerID] = data.Item
completeCount++;
console.log("completeCount is " + completeCount);
if (completeCount === completeCeiling)
{
callback(null, JSON.stringify(returnArray));
}
}
else
{
console.log("player doesn't exist");
}
}
});
}
};
b。他们键入的全部字符串
exports.handler = function(event, context, callback)
{
completeCount = 0;
completeCeiling = 1;
var returnArray = {
}
findPlayer();
function findPlayer()
{
var params =
{
TableName : "Z_DEV_findPlayerTable",
KeyConditions:
{
"firstLetters": {
ComparisonOperator: 'EQ',
AttributeValueList: [
event.first2Letters ]
},
"firstOrLastName":
{
ComparisonOperator: 'BEGINS_WITH',
AttributeValueList: [
event.currentTypedLetters ]
}
},
};
dynamodb.query(params, function(err, data)
{ if (err) {
console.log("break 1A")
console.log(err, "findPLayer error");
callback(err);
} else {
console.log("break 1B");
console.log("my data is", data.Items);
var folderKeys = Object.keys(data.Items);
completeCeiling = folderKeys.length;
for(i = 0; i < folderKeys.length; i++)
{
var filteredPlayer = JSON.stringify(data.Items[folderKeys[i]].firstOrLastName);
var splitString = filteredPlayer.split('+');
var filteredID = splitString[1];
filteredID = filteredID.replace(/['"]+/g, '')
console.log("my filteredPlayer is ", filteredPlayer);
console.log("my filteredID2 is ", filteredID);
getPlayer(filteredID);
}
}
});
}
function getPlayer(playerID) {
var params = {
TableName : "Z_DEV_playerTable",
Key: {
"playerID": playerID
},
};
dynamodb.get(params, function(err, data)
{ if (err) {
console.log(err);
console.log("break 2A");
} else
{
console.log("break 2B");
//console.log("my data.Item is ",data.Item)
if(data.Item != undefined)
{
returnArray[playerID] = data.Item
completeCount++;
console.log("completeCount is " + completeCount);
if (completeCount === completeCeiling)
{
callback(null, JSON.stringify(returnArray));
}
}
else
{
console.log("player doesn't exist");
}
}
});
}
};
exports.handler=函数(事件、上下文、回调)
{
完整计数=0;
完全上限=1;
var returnArray={
}
findPlayer();
函数findPlayer()
{
变量参数=
{
表名:“Z_DEV_findPlayerTable”,
关键条件:
{
“第一封信”:{
比较运算符:“EQ”,
属性值列表:[
event.first2Letters]
},
“firstOrLastName”:
{
ComparisonOperator:'以'',
属性值列表:[
event.currentTypedLetters]
}
},
};
dynamodb.query(参数、函数(错误、数据)
{if(err){
控制台日志(“中断1A”)
log(err,“findPLayer错误”);
回调(err);
}否则{
控制台日志(“断1B”);
log(“我的数据是”,data.Items);
var folderKeys=Object.keys(data.Items);
Complete天花板=folderKeys.length;
对于(i=0;i