查询条件缺少关键架构元素:dynamodb中的ID

时间:2019-08-29 14:07:19

标签: node.js amazon-dynamodb

我想使用.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);
                 }
              });

             });

1 个答案:

答案 0 :(得分:0)

如果要通过Firstname属性查询索引,则应在该属性上创建索引。 IIUC,您的索引是在Id属性上创建的,这就是为什么它不让您在Firstname的{​​{1}}上指定条件的原因