Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从AWS DynamoDB数据库检索多个主键值的行_Javascript_Amazon Web Services_Amazon Dynamodb_Aws Sdk - Fatal编程技术网

Javascript 从AWS DynamoDB数据库检索多个主键值的行

Javascript 从AWS DynamoDB数据库检索多个主键值的行,javascript,amazon-web-services,amazon-dynamodb,aws-sdk,Javascript,Amazon Web Services,Amazon Dynamodb,Aws Sdk,我想说: select * from myTable where pkName in ('john', 'fred', 'jane') 但是,似乎没有一种本地方式来为数组中的项列表提供数据。我的查询工作并检索单个主键的值,但希望能够传入多个主键。从控制台中的DynamoDb页面来看,这似乎是不可能的,但是有好的解决方法吗?我的KeyConditionExpression中是否有多个或,以及一个非常复杂的表达式属性值 我正在引用此页面: 并使用基于以下内容的代码(可在以下地址找到): 您正在查

我想说:

select * from myTable where pkName in ('john', 'fred', 'jane')
但是,似乎没有一种本地方式来为数组中的项列表提供数据。我的查询工作并检索单个主键的值,但希望能够传入多个主键。从控制台中的DynamoDb页面来看,这似乎是不可能的,但是有好的解决方法吗?我的
KeyConditionExpression
中是否有多个
,以及一个非常复杂的
表达式属性值

我正在引用此页面:

并使用基于以下内容的代码(可在以下地址找到):


您正在查找有文档记录的
batchGetItem
函数。

您正在查找有文档记录的
batchGetItem
函数。

您还可以使用DocumentClient和batchGet

const AWS = require('aws-sdk');
const dbClient = new AWS.DynamoDB.DocumentClient({ region: 'ap-south-1' });

exports.handler = (event, context, callback) => {
        
        var cartItems=JSON.parse(event.body);
         let scanningtable =  {
             RequestItems: {
               COOLERS : {
                    Keys: [
                        {
                           "ITEM_ID": 379
                         },
                         {
                           "ITEM_ID": 376
                         }
                    ], 
                    ProjectionExpression: "ITEM_ID, #N,CATEGORY, SUB_CATEGORY, BRAND, SELL_RATE",
                    ExpressionAttributeNames: {
                        "#N": "NAME" 
                    },
                }
             }
          };

        dbClient.batchGet(scanningtable, function (err, data) {
            if (err) {
                callback(err, null);
            } else {
                var response = {
                    "statusCode": 200,
                    "headers": {
                        "Access-Control-Allow-Origin": "*"
                    },
                    "body": JSON.stringify(data),
                };
                callback(null, response);
            }
        });
};

您还可以使用DocumentClient和batchGet

const AWS = require('aws-sdk');
const dbClient = new AWS.DynamoDB.DocumentClient({ region: 'ap-south-1' });

exports.handler = (event, context, callback) => {
        
        var cartItems=JSON.parse(event.body);
         let scanningtable =  {
             RequestItems: {
               COOLERS : {
                    Keys: [
                        {
                           "ITEM_ID": 379
                         },
                         {
                           "ITEM_ID": 376
                         }
                    ], 
                    ProjectionExpression: "ITEM_ID, #N,CATEGORY, SUB_CATEGORY, BRAND, SELL_RATE",
                    ExpressionAttributeNames: {
                        "#N": "NAME" 
                    },
                }
             }
          };

        dbClient.batchGet(scanningtable, function (err, data) {
            if (err) {
                callback(err, null);
            } else {
                var response = {
                    "statusCode": 200,
                    "headers": {
                        "Access-Control-Allow-Origin": "*"
                    },
                    "body": JSON.stringify(data),
                };
                callback(null, response);
            }
        });
};