繁体   English   中英

如何将“db.query”用于NodeJS AWS-SDK for DynamoDB

[英]How to use 'db.query' for the NodeJS AWS-SDK for DynamoDB

伙计们,我有下表:

  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运算符。 这可能是关于表上的哈希键,或者是全局二级索引上的哈希键,但是没有办法(没有全局二级索引)构造一个查询“给我所有范围键为ford的项目”。 “ 如果您将全局二级索引设置为使用make作为哈希键,则可以执行您所描述的查询。

不幸的是,只能在创建表时创建索引。 如果make项上没有全局二级索引,那么可以使用“ Scan操作完成它,但它不会像Query那样Query

您可以在创建表后创建全局二级索引。 转到amazon aws dynamodb控制台,单击表格并单击“创建索引”。

您可以通过在Google中输入“amazon aws”找到amazon aws控制台。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM