簡體   English   中英

如何使用dynamodb按降序獲取最后插入的10條記錄

[英]How to get last inserted 10 records in descending order using dynamodb

我是 amazone-dynamodb 的新手。 我想最后使用 dynamodb 按降序插入 10 條記錄。

聽起來您在這里使用 DynamoDB 示例: http ://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStarted.NodeJs.01.html

示例數據沒有插入時間戳。

另一個問題是,您只能使用 Sort Key 在 DynamoDB 中進行排序,否則您需要在代碼中執行排序。

因此,如果您的分區鍵是年份,而排序鍵是標題,您需要:

  1. 引入一個為您提供創建時間戳的屬性。
  2. 使用此屬性的LSI創建表,或使用新屬性作為排序鍵創建GSI
  3. 現在您可以使用查詢了!

查詢 API 有一個選項:

  • 按 Sort Key 降序排序(使用 ScanIndexForward 參數)
  • 限制返回的項目數(使用 Limit 參數)

DynamoDB 允許僅按sort key屬性對數據進行sort key ScanIndexForward選項可用於按升序或降序對數據進行排序。

請注意,排序將僅針對特定的分區鍵進行。 它不會對表中的所有項目進行排序並為您提供最后 10 條記錄。 可以對特定的分區鍵進行排序操作。

向前掃描索引

指定索引遍歷的順序:如果為true(默認),則按升序進行遍歷; 如果為 false,則按降序執行遍歷。

排序鍵定義和示例:-

復合分區排序鍵被索引為分區鍵元素和排序鍵元素。 這個多部分鍵維護第一個和第二個元素值之間的層次結構。 例如,復合分區排序鍵可以是“UserID”(分區)和“Timestamp”(排序)的組合。 保持分區鍵元素不變,您可以搜索排序鍵元素以檢索項目。 例如,這將允許您使用 Query API 檢索跨時間戳范圍內單個 UserID 的所有項目。

Abhaya Chauhan 的回答大部分是正確的,但有一處不准確。 Limit 參數實際上並不限制返回的項目數,而是限制掃描的項目數(無論它們是否符合搜索條件)。

因此,如果您將限制設置為 10,您可能會得到 0 到 10 個項目。 有關更多信息,請參閱以下文檔:

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Query.html#Query.Limit

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM