代码之家  ›  专栏  ›  技术社区  ›  AlexKogan

dynamodb更新一个无键

  •  1
  • AlexKogan  · 技术社区  · 7 年前

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

    我的代理需要从此db中获取一张票证,以使用特定的标准(例如客户端id=a,状态为打开或关闭)和特定的优先级顺序(例如最旧的票证优先,或状态为新的票证优先,等等)。

    理想情况下,代理首先声明符合条件的票证(使用设置字段active\u agent的更新),然后获取票证。

    我最近开始与DynamoDb合作,看看它是否能为我们提供解决方案,但我在尝试让这种情况发挥作用时遇到了困难。我似乎无法(a)用这样的一组参数更新票证,以及(b)通过查询或扫描订购我获取的票证(我可以将其限制为1个符合我的条件)。

    任何指导我都将不胜感激!

    1 回复  |  直到 7 年前
        1
  •  1
  •   Deividi Silva    7 年前

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

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

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