Joe*_*Dee 6 javascript node.js amazon-dynamodb
我正在使用全局二级索引来查询我的表,并且希望能够根据其他属性过滤结果(SQL 等效项是 WHERE 子句)。扫描允许我执行此操作,但是可以使用查询吗?我还可以采取哪些其他方法?
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);
}
});
Run Code Online (Sandbox Code Playgroud)
关于如何设计一个表来实现的任何其他想法:
Hash Key: propertyID (unique)
Range Key: createdAt (unique
Global Secondary Indexes: City
Global Secondary Indexes: State
Run Code Online (Sandbox Code Playgroud)
我希望能够通过索引进行查询,然后通过其他属性(卧室、浴室等)进行过滤
无论您需要查询哪个属性,都需要将其设为 GSI - 您最多可以添加 5 个属性。您还需要注意它支持的查询类型(仅限这些:EQ | LE | LT | GE | GT | BEGINS_WITH | BETWEEN)
如果您的需求超出了这些查询,那么 Dynamo 无法提供帮助 - 可能需要切换到 RDS。如果它们可以表述为文档,那么请考虑 Cloudsearch。
归档时间: |
|
查看次数: |
8061 次 |
最近记录: |