gpt4 book ai didi

amazon-web-services - 如何过滤NULL?

转载 作者:行者123 更新时间:2023-12-04 00:26:52 25 4
gpt4 key购买 nike

"order (S)","method (NULL)","time (L)"
"/1553695740/Bar","true","[ { ""N"" : ""1556593200"" }, { ""N"" : ""1556859600"" }]"
"/1556439461/adasd","true","[ { ""N"" : ""1556593200"" }, { ""N"" : ""1556679600"" }]"
"/1556516482/Foobar","cheque","[ { ""N"" : ""1556766000"" }]"

如何在空的“方法”属性值上扫描或查询该问题? https://s.natalian.org/2019-04-29/null.mp4

最佳答案

不幸的是,DynamoDB 控制台提供了一个简单的 GUI,并假设您要执行的所有操作都具有相同的类型。当您在“NULL”类型的列上选择过滤器时,它只允许您执行存在或不存在。这是有道理的,因为仅包含 NULL 数据类型的列可以存在也可以不存在。

您在这里拥有的是一个包含多种数据类型的列(因为 NULL 是与 String 不同的数据类型)。有很多方法可以在这里过滤您想要的内容,但我认为您无法在控制台上使用它们。下面是一个关于如何通过 AWS CLI 过滤数据集的示例(注意:由于您的列是一个命名为保留字 method ,您需要使用表达式属性名称对其进行别名):

使用过滤器表达式

$ aws dynamodb scan --table-name plocal --filter-expression '#M = :null' --expression-attribute-values '{":null":{"NULL":true}}' --expression-attribute-names '{"#M":"method"}'

考虑避免这种情况的一个选项是更新您的逻辑以在将数据写入数据库时​​写入一些排序填充字符串值而不是空或空字符串(即“无”或“不适用”)。然后,您可以单独对字符串进行操作并搜索该值。

DynamoDB 当前不允许使用空字符串的字符串值,如果您尝试直接放置这些项目,则会出现错误。为了使这“更容易”,许多 SDK 为 DyanmoDB 项目的对象提供了映射器/转换器,这通常涉及将空字符串转换为 Null 类型,作为解决无空字符串规则的一种方式。

如果需要区分 null"" ,当它们存储在 DyanmoDB 中时,您需要编写一些自定义逻辑来将空字符串编码/解码为唯一的字符串值(即 "__EMPTY_STRING")。

关于amazon-web-services - 如何过滤NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55898187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com