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);
}
});
};