在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(
//...
)
我正在使用以下功能 ->
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(
//...
)