C# 4.0 获取最长日期/获取DynamoDB中最后添加的项目

C# 4.0 获取最长日期/获取DynamoDB中最后添加的项目,c#-4.0,nosql,amazon-dynamodb,C# 4.0,Nosql,Amazon Dynamodb,嗨,这是我的表模式 联系人表: "KeySchema": [{ "AttributeName": "DateTimeRetrieved", "KeyType": "HASH" },{ "AttributeName": "Id", "KeyType": "RANGE" }] 我的主键已检索DateTime作为主键。我想检索表中输入的最新日期时间。它还等于上次添加的项目datetime 有没有办法对此提出质疑。谢谢 不建议这样做:如果您的表很小,您可以始终选择所有数

嗨,这是我的表模式

联系人表:

"KeySchema": [{
    "AttributeName": "DateTimeRetrieved",
    "KeyType": "HASH"
},{
    "AttributeName": "Id",
    "KeyType": "RANGE"
}]
我的主键已检索DateTime作为主键。我想检索表中输入的最新日期时间。它还等于上次添加的项目datetime


有没有办法对此提出质疑。谢谢

不建议这样做:如果您的表很小,您可以始终
选择
所有数据并在应用程序级别对其排序

尝试在散列键中查找顺序有点滥用。对范围和二级索引进行排序。为了有效地使用DynamoDB,您应该将数据建模为“bucket”(散列键),并在第二级使用
Query
提问

在不知道实际建模的情况下,很难提供帮助,但良好的阅读是允许您甚至对属性进行查询的关键。
使用range/LSI,您可以对行进行排序并查询“最后一个”行。

我会将日期放在范围内,以便使用“startsWith”参数执行查询

例如:

关键字:日期(以YYYY-MM为单位) 范围键:DD+Id中的日期

因此,您可以发出类似“给我2013-12年从“0”开始的日期的所有项目”(这将给您2013年12月1日至9日的所有项目)的查询


然后在应用程序级别,您可以解析ID

感谢您的洞察力。我正在编写一个批处理过程,该过程查询外部数据库并根据DynamoDB保存项目。我必须创建pimarykey作为LastDateTimeRetrieved,因为批处理过程每隔一定的小时运行一次,并在datetimeh中保存整个内容ash键。下一次批处理运行时,它应该从Dynamodb获取上次保存的datetime/Max datetime以查询外部数据库。我认为每次将项目放入Dynamodb时,将lastdatetime保存在单独的表中可能是最佳选择。?是的,我相信将其保存在其他位置,而不是尝试使用Dynamodb计算它api调用是一种更好的方法。