Я изучаю DynamoDB и пытаюсь выполнить запрос с помощью .NET SDK для AWS. Я установил QueryRequest
с определенным KeyConditionExpression
, чтобы я мог искать по ключу раздела.
var request = new QueryRequest
{
TableName = "MyTable",
KeyConditionExpression = "ControlNumber = :cn",
ExpressionAttributeValues =
new Dictionary<string, AttributeValue> {{":cn", new AttributeValue { S = "123456789" } }}
};
var response = await client.QueryAsync(request);
Мне возвращают ту запись, которую я ищу, со всеми атрибутами. Все атрибуты в моей таблице DynamoDB определены как строки. Я получаю такие данные:
{
"scannedCount": 5,
"count": 2,
"lastEvaluatedKey": null,
"consumedCapacity": null,
"items": [
{
"Status": {
"nullvalue": null,
"ss": null,
"b": null,
"bool": null,
"ns": null,
"l": null,
"m": null,
"n": null,
"bs": null,
"s": "READY"
},
"Type": {
"nullvalue": null,
"ss": null,
"b": null,
"bool": null,
"ns": null,
"l": null,
"m": null,
"n": null,
"bs": null,
"s": "OrderStatus"
}, ......
Похоже, я получаю значение для всех возможных типов данных, которые могут быть возвращены, в дополнение к моей строке «s». Я думаю, что они называются дескрипторами типов данных, и все они равны нулю, за исключением строкового типа данных, который содержит данные, которые я действительно хочу видеть. Почему это? И как мне вернуть только данные, без всех тех нулевых значений, которые меня не волнуют.
Например, я ожидаю увидеть:
{ "Status": "Ready", "Type":"OrderStatus"....}
ОБНОВЛЕНИЕ: я могу запустить аналогичный запрос или даже получить элемент через интерфейс командной строки AWS и вернуть json, как я ожидал. Таким образом, похоже, что .NET SDK добавляет дополнительные дескрипторы типов данных, которые я не хочу видеть. Кроме того, я использую Mulesoft 4, и он делает то же самое, что и .NET SDK.