Я пытаюсь вернуть только те значения, где john найден из базы данных DynamoDB. Я могу вернуть значения, содержащие name: john , из сопоставленного списка, однако проблема заключается в том, что он, похоже, также возвращает другие значения.
Запуск выбора : 'count' возвращает 1 совпадение, что является правильным, но ничего не возвращает при использовании. Я предполагаю, что count просто возвращает число, а не специфику c выберите, где соответствует john.
Я пишу это на NodeJS; Я надеюсь, что кто-нибудь поможет мне разобраться в этом. Я знаю, что значение, которое я хочу показать, - это элементы json, где name: john , все, что я хочу, чтобы не отображалось.
Вот мой результат на данный момент:
{
"Department": [
{
"employees": [
{
"name": "john"
},
{
"name": "sally"
}
]
}
],
"Count": 1
}
Мой код:
const AWS = require('aws-sdk'); // eslint-disable-line import/no-extraneous-dependencies
const dc = new AWS.DynamoDB.DocumentClient();
exports.handler = async (event, context, callback) => {
// Construct the params for filtering data through dynamodb
const params = {
FilterExpression: "contains(#department, :employees)",
ExpressionAttributeNames: {
"#department": "employees",
},
ExpressionAttributeValues: {
":employees": {
"name":"john"
}
},
ProjectionExpression: "#department",
TableName: 'mytable',
//Select: 'COUNT'
};
const resultDC = await dc.scan(params).promise();
var items = resultDC.Items;
var count = resultDC.Count;
var returned_list = {
'Department' : items,
'Count' : count,
};
// create a response
const response = {
statusCode: 200,
body: JSON.stringify(returned_list),
};
callback(null, response);
};