查询没有密钥的数据(AWS DynamoDB SDK Nodejs)

我刚开始使用适用于DynamoDb的AWS Nodejs SDK

我有点困惑,我怎么可以不使用分区键访问特定的数据。

我们假设我的表中只有1个项目,属性“id”设置为我的分区键

表名称:用户

{ "full_name": { "S": "John Cena" }, "id": { "S": "ABC123" }, "password": { "S": "youcantseeme" }, "username": { "S": "AndHisNameIs" } } 

下面的代码将返回上面的对象,如果我查询使用我的密钥

顺便说一句我正在使用dynamodb.query(params,function(err,data){}

使用键search

 let params = { TableName : "Users", KeyConditionExpression: "#myid = :id", ExpressionAttributeNames:{ "#myid": "id" }, ExpressionAttributeValues: { ":id": { S: "ABC123" } } }; 

没有钥匙search

– 我想如果我可以访问该数据,而不指定idstring。 例如,如果用户发送“用户名”和“密码”,我不会有该ID,所以我不能够find它。

– 下面的代码会返回一个错误,指出我缺less一个分区键“id”

 let params = { TableName : "Users", ExpressionAttributeNames:{ "#myusername": "username" }, KeyConditionExpression: "#myusername = :username", ExpressionAttributeValues: { ":username": { S: "AndHisNameIs" } } }; 

我的工作?

– 用户名而不是IDreplace分区键? 这是如何nosql数据库的工作? 我来自一个MySQL环境,所以我只是能够search一个特定的string或数字或布尔只要求在某一列中大声笑

将全局二级索引添加到要查询的字段。 或者做一个全表扫描。