Mysql aws-如何使用user';s来自用户的字符';她叫什么名字?

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编写了查询代

所以我有这个应用程序,我试图实现一个搜索栏,如果他们输入“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
                }

            }
        });
    }   


};

想明白了!这就是以下语法:

  • 当数据库中有多个John Smith时,用户为John Smith键入“Jo”。您需要传入两个变量 a。他们键入内容的前两个字母

    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