Javascript 使用全局二级索引筛选dynamoDB查询
我正在使用一个全局二级索引来查询我的表,并希望能够基于其他属性筛选结果(相当于SQL的WHERE子句)。扫描允许我这样做,但是可以通过查询吗?我还可以采取哪些其他方法Javascript 使用全局二级索引筛选dynamoDB查询,javascript,node.js,amazon-dynamodb,Javascript,Node.js,Amazon Dynamodb,我正在使用一个全局二级索引来查询我的表,并希望能够基于其他属性筛选结果(相当于SQL的WHERE子句)。扫描允许我这样做,但是可以通过查询吗?我还可以采取哪些其他方法 var params = { "IndexName": "City-index", "KeyConditions": { "City": { "AttributeValueList
var params = {
"IndexName": "City-index",
"KeyConditions": {
"City": {
"AttributeValueList": [{
"S": city
}],
"ComparisonOperator": "EQ"
}
},
"Limit": "100",
"TableName": "properties"
}
dynamoDB.query(params, function(err, data) {
if (err) {
console.log(err);
} else {
console.log(data);
}
});
关于如何设计表格以实现以下目标的任何其他想法:
Hash Key: propertyID (unique)
Range Key: createdAt (unique
Global Secondary Indexes: City
Global Secondary Indexes: State
我希望能够通过索引进行查询,然后通过其他属性(卧室、浴室等)进行过滤。您需要查询的任何属性都需要成为GSI,您最多可以添加5个属性。您还需要注意它支持的查询类型(只有这些:EQ | LE | LT | GE | GT |以| BETWEEN开头)
如果您需要的不仅仅是这些查询,Dynamo无法帮助您-可能需要切换到RDS。如果它们可以被设计成文档,那么考虑CyrdSux.谢谢@索尼。接下来,我可以一次查询超过1个GSI吗?我试过了,但没有成功。我可以使用5,但需要能够在同一个查询中通过多个索引进行查询。是的,我想你可以在一个go中查询多个GSI-哈希键(和/或范围键)和GSI。@乔,如果这已经回答了你的问题,你能标记为正确答案吗?@SonyKadavan Nope,你不能在一个go中查询多个GSI,因为您只能指定一个索引表名。