dynamodb更新一个没有密钥

时间:2018-01-23 22:59:05

标签: amazon-dynamodb

我的应用有一张门票表。票证具有各种属性,例如客户端,状态(新建,打开,关闭等),创建日期,更新日期。

我的代理需要从此数据库中获取单个票证以使用某些条件(例如客户端ID = a,状态是打开还是关闭)并具有特定的优先级顺序(例如最早的票证,或者状态为新的门票等。)

理想情况下,代理通过首先声明一个符合条件的代码(使用设置字段active_agent的更新)获取票证,然后获取它。

我最近开始使用DynamoDb看看它是否适合我们,但是我试图让这种情况发挥作用。我似乎无法(a)使用这样的一组参数更新票证,并且(b)订购我通过查询或扫描获取的票证(我可以将其限制为符合我标准的1)。 / p>

任何指导都非常感谢!

1 个答案:

答案 0 :(得分:1)

a)使用更新表达式:https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html

b)查询结果始终按排序键值排序。如果排序键的数据类型为Number,则以数字顺序返回结果;否则,结果以UTF-8字节的顺序返回。默认情况下,排序顺序为升序。要反转顺序,请将ScanIndexForward参数设置为false。 您还可以对返回的项目数使用限制:要评估的最大项目数(不一定是匹配项的数量)。如果DynamoDB在处理结果时处理的项目数达到限制,它将停止操作并返回到该点的匹配值,并在LastEvaluatedKey中的一个键应用于后续操作,以便您可以在哪里获取离开了。此外,如果在DynamoDB达到此限制之前处理的数据集大小超过1 MB,它将停止操作并将匹配值返回到限制,并在LastEvaluatedKey中应用一个键以在后续操作中应用以继续操作。

更多信息:https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html