我想使用.query从具有“彼得”名字的表用户中检索所有数据。我在分区键ID为“ Id-index”的表上创建了索引。但是当我运行代码时,我仍然收到错误查询条件缺少关键模式元素:Id。
router.get('/users/query2', (req, res) => {
var params =
{
TableName: table,
IndexName: "Id-index",
KeyConditionExpression: "Firstname = :first",
//KeyConditionExpression: "Id = :id",
//KeyConditionExpression: "Firstname = :first and Id = :id",
//FilterExpression: "Firstname = :first",
ExpressionAttributeValues: {
":first": "Peter",
//":id": 4
}
}
let users = docClient.query(params, function (err, data) {
if (err) {
console.log(err);
handleError(err, res);
} else {
// display all users in the callback
// if u use handleSuccess data.Items looses its information
res.json({ message: 'success', statusCode: 200, data: data })
//handleSuccess(data.Item, res);
}
});
});
答案 0 :(得分:0)
如果要通过Firstname
属性查询索引,则应在该属性上创建索引。 IIUC,您的索引是在Id
属性上创建的,这就是为什么它不让您在Firstname
的{{1}}上指定条件的原因