Я изучаю 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"....}
ОБНОВЛЕНИЕ: я могу выполнить аналогичный запрос или даже получить элемент через CLI AWS и вернуть json, как я ожидаю. Похоже, что .NET SDK добавляет дополнительные дескрипторы типов данных, которые я не хочу видеть. Кроме того, я использую Mulesoft 4, и он делает то же самое, что .NET SDK.