首页 > 解决方案 > 如何使用 .query 而不必在 dynamodb 中指定特定的 Id?

问题描述

我在 dynamodb 中有一个表,其中有多个名字为 Peter 的条目,我想检索所有以“Peter”为名字的条目。我将如何使用 .query 来做到这一点而不必指定特定的 ID。现在我收到错误:查询条件错过了关键架构元素:Id”。

   router.get('/users/:id', (req, res) => {

        //name3 = "Peter";

       // id = ':id';

        var params = {
            TableName:table,
            //KeyConditionExpression: 'Firstname = :thename AND Id = :id',
            KeyConditionExpression: 'Firstname = :thename',
            //KeyConditionExpression: "Id = :id",

            ExpressionAttributeValues: {
                ':thename': "Peter",
                //':id':id
            }

        }

        let users = docClient.query(params, function (err, data) {
            if (err) {
                console.log(err);
                handleError(err, res);
            } else {

                console.log(data);          
                res.json({ message: 'success', statusCode: 200, data: data })

            }
         });

        });

标签: node.jsamazon-dynamodb

解决方案


如果我没记错的话,你不能用query.

另一方面,您可以使用docClient.scan. (文档)。它的效率较低,因为它会进行全面扫描,但您不需要提供 ID


推荐阅读