在dynamodb中通过复合主键获取数据

Fetching data by composite primary key in dynamodb

我正在使用以下功能 ->

const params = {
        TableName: process.env.dummyTable,
        Key: {

               outlet_id:event.pathParametrs.id,
               id:{"S":"default"} 


        }

    }
dynamoDb.get(params).promise()
        .then(result => {
          console.log('-->',result);
          const response = {
            statusCode: 200,
            body: JSON.stringify(result),
          };

          callback(null, response);
        })
        .catch(error => {
          console.error(error);
          callback(new Error('Couldn\'t fetch table Data'));
          return;
        });
     }

我想根据 outlet_id 和 id.Here 获取记录 outlet_id 是主分区键,而 id 是主排序键(带有 uuid)。 如何使用默认值指定 id(主排序键)以便我可以获取数据

不清楚您是尝试通过指定复合分区+排序键来获取单个项目,还是尝试查询具有相同分区键(即未指定排序键)的所有项目。

如果您尝试获取具有特定分区键和排序键的单个项目,您的代码看起来不错,但有一个例外。分区键也应指定类型,如下所示:

const params = {
    TableName: process.env.dummyTable,
    Key: {
           outlet_id:{"S": event.pathParametrs.id},
           id:{"S":"default"} 
    }
}

但是,如果您尝试查询具有相同分区键的所有项目(即没有指定排序键),那么您需要修改代码以执行 query 而不是 get :

const params = {
    TableName: process.env.dummyTable,
    Key: {
           outlet_id: {"S": event.pathParametrs.id}
    }
}
dynamoDb.query(params).promise()
.then(
  //...
)
.catch(
  //...
)