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调用是一种更好的方法。