К сожалению, консоль DynamoDB предлагает простой графический интерфейс и предполагает, что все операции, которые вы хотите выполнить, имеют одинаковый тип.Когда вы выбираете фильтры для столбцов типа «NULL», он только позволяет вам делать, существует или не существует.Это имеет смысл, поскольку столбец, содержащий только типы данных NULL, может существовать или не существовать.
Здесь имеется столбец, содержащий несколько типов данных (поскольку NULL - это тип данных, отличный от String).Есть много способов отфильтровать то, что вы хотите здесь, но я не верю, что они доступны вам на консоли.Вот пример того, как вы можете фильтровать набор данных через интерфейс командной строки AWS (примечание: поскольку ваш столбец является зарезервированным словом method
, вам нужно будет присвоить ему псевдоним с именем атрибута выражения):
Использование выражений фильтра
$ aws dynamodb scan --table-name plocal --filter-expression '#M = :null' --expression-attribute-values '{":null":{"NULL":true}}' --expression-attribute-names '{"#M":"method"}'
Чтобы избежать этого, можно рассмотреть вариант обновления вашей логики для записи некоторого значения строки заполнителя сортировки вместо пустой или пустой строки при записи данных в базу данных (т. Е. "Нет "или" N / A ").Тогда вы можете работать только со строками и искать по этому значению.
DynamoDB в настоящее время не допускает строковые значения пустой строки и выдаст вам ошибки, если вы попытаетесь поместить эти элементы напрямую.Чтобы сделать это «проще», многие из SDK предоставили средства отображения / преобразования объектов в элементы DyanmoDB, и это обычно включает преобразование пустых строк в типы Null как способ обойти правило отсутствия пустых строк.
Если вам нужно различить null
и ""
, вам нужно будет написать некоторую пользовательскую логику для маршаллирования / отмены маршалирования пустых строк в уникальное строковое значение (то есть "__EMPTY_STRING"
), когда они хранятся вDyanmoDB.