嗨,Dynamodb社区,
因此,所讨论的表是MLA_USER_AUTH。正如您所看到的,它有As分区键和As排序键。我希望能够使用用户id和电子邮件查询数据库。
有时我需要查找与电子邮件关联的用户,有时还需要查找用户ID。电子邮件和用户ID属性对于每个访问者都是唯一的。有什么办法可以做到吗?
这是我目前的查询。这显然行不通。当它抛出错误时:ValidationExc0019:查询条件错过了关键架构元素: UserID
var params = {
TableName : 'MLA_USER_AUTH',
KeyConditionExpression: "Email = :email",
ExpressionAttributeValues:{
":email": { "S" : email }
}
};
dynamodb.query(params, function(err, data) {
你是我唯一的选择。谢谢你的帮助
谢谢,忍者
没有分区键,您不能查询
,但可以扫描
。http://docs.aws.amazon.com/amazondynamodb/latest/gettingstartedguide/GettingStarted.NodeJs.04.html#GettingStarted.NodeJs.04.Scan
正如Mark B所说,您需要分区键来查询
——您不能单独使用排序键。
因此,您唯一的解决方法是创建一个GSI,将email
作为分区键。
二级索引将满足您的需要。
// definition
{
TableName: "MLA_USER_AUTH",
AttributeDefinitions:[
{
AttributeName: "Email",
AttributeType: "S"
}
],
GlobalSecondaryIndexUpdates: [
{
Create: {
IndexName: "emailIndex",
KeySchema: [
{AttributeName: "Email", KeyType: "HASH"}
]
}
}
]
}
// Query
{
TableName : "MLA_USER_AUTH",
IndexName: "emailIndex",
KeyConditionExpression: "Email = :email",
ExpressionAttributeValues:{
":email": { "S" : email }
}
}
看见http://docs.aws.amazon.com/amazondynamodb/latest/gettingstartedguide/GettingStarted.JsShell.06.html 有关创建它们的详细信息。
问题内容: 假设表格具有名称,ID,年龄,性别,学历等。ID是关键,并且该表也按名称,年龄和性别进行索引。我需要所有25岁以上的男学生,按其姓名排序。 这在mySQL中很简单: IndexDB允许创建索引并根据该索引对查询进行排序。但是它不允许多个查询,例如年龄和性别。我发现了一个名为queryIndexedDB的小型库,该库允许复合查询,但不提供排序结果。 那么,在使用IndexedDB时,有没
我试图查询具有分区键和排序键的表(但是分区键和排序键是1:1,我只想使用分区键[仅返回一项]进行查询)。 这是我尝试过的代码,但没有成功(testId是分区键名,1234567890是字符串形式的分区键值);你们都知道我可以只使用分区键进行查询的方法吗?记住,由于分区键和排序键是1:1,所以只会返回一个项?提前非常感谢您。[这是我的第一篇堆栈溢出帖子-很抱歉,如果我用词不当,我很乐意回答关于我的措
我做了一些挖掘,似乎在任何地方都找不到简单的答案,也许我找错了地方。我只想按文件的修改时间排序,从最旧到最新。这可能吗?
问题内容: 如果排序列上有索引,排序是否使用mysql索引?索引还用于其他什么用途? 它对列的组合索引和单独索引有什么区别? 问题答案: 是的,当按排序列排序时,MySQL使用索引对信息进行排序。 另外,如果在添加到 SELECT 子句的所有列中都有索引,则MySQL不会从表本身加载数据,而是从索引加载数据(更快)。 合并和单独的索引之间的区别是,MySQL不能使用超过 一个 每次查询索引,因此,
适应DynamoDB:) 如果我有一个具有唯一分区键(如唯一id)的表,并且我使用时间戳作为排序键,那么Dynamo将如何对我的数据进行排序? 我将在一个分区中拥有最新的东西,而在其他分区中拥有旧的东西吗? 我这样问是因为我想知道如何分配吞吐量,而且我确信我最近创建和编辑的项目最有可能被访问,而旧的内容几乎可以存档。
在Hazelcast中,是否可以基于键的属性而不是值来查询IMap?所有Hazelcast示例都显示了按值查询。E、 例如,对于具有字符串键的员工地图: 然后,典型的搜索谓词根据员工属性(姓名、薪资等)进行搜索。但我的案例使用了更复杂的密钥,例如: 因此,如果数据属性具有以下字段: 我想编写一个可以通过键进行查询的谓词,以返回适当的DataValue对象。这不起作用: 我可以按照这个答案中的建议推