Javascript 如何使用';db.query';对于用于DynamoDB的NodeJS AWS-SDK
各位, 我有下表:Javascript 如何使用';db.query';对于用于DynamoDB的NodeJS AWS-SDK,javascript,node.js,amazon-dynamodb,Javascript,Node.js,Amazon Dynamodb,各位, 我有下表: hashKey (model): RangeKey (make): mustang ford f150 ford malibu chevy ... 我想做的是搜索并返回所有福特车型,即: var params = { TableName : 'models', IndexName : 'make-index', KeyCondit
hashKey (model): RangeKey (make):
mustang ford
f150 ford
malibu chevy
...
我想做的是搜索并返回所有福特车型,即:
var params = {
TableName : 'models',
IndexName : 'make-index',
KeyConditions :
{
"make" :
{
"AttributeValueList" : [
{
"S" : 'ford'
}
],
"ComparisonOperator" : "EQ"
}
},
}
db.query(params, function(err, data) {
if (err) {
console.log (err)
callback(err, null)
} else {
callback(null, data.Items)
}
});
我做错了什么?:)谢谢 是否设置了一个全局二级索引,并将
make
作为索引的哈希键?您的查询告诉DynamoDB使用名为的索引make index
,但您的问题不清楚该索引是否存在
在DynamoDB中使用Query
操作的唯一方法是在散列键上使用EQ
运算符。可以是表上的散列键,也可以是全局二级索引上的散列键,但如果将make
设置为散列键,则无法(没有全局二级索引)构造一个查询,该查询会显示“给我范围键为ford
”的所有项,然后您可以执行您描述的查询
不幸的是,只有在创建表时才能创建索引。如果在
make
项上没有全局二级索引,则可以通过Scan
操作来完成,但它的性能不如查询
创建表后,可以创建全局二级索引。转到amazon aws dynamodb控制台,单击一个表并单击“创建索引”
您可以通过在谷歌中键入“amazon aws”来找到amazon aws控制台。我试图避免我知道如何构建此表的方式。。。ie
entry
make
model
如果我将hashkey设置为已知字符串,那么我当然可以查询。但这似乎是一种使用dynamo的非aws方式