簡體   English   中英

如何在沒有分區鍵的情況下在 DynamoDb 表中查找值?

[英]How to find value in DynamoDb table without partition key?

我試圖通過字段值在 DynamoDb 表中查找值,沒有分區鍵,這就是我試圖實現這一目標的方式:

const tag = await database.query({
      TableName: 'blog_tags',
      KeyConditionExpression: 'tagName = :name',
      ExpressionAttributeValues: {
        ':name': {S: 'test'}
   }
});

但我收到錯誤ValidationException: Query condition missed key schema element: tagId

在我的表中,我將tagId作為分區鍵,將 tagName 作為值字段。 但我只想按tagName搜索。

我應該如何修改這個查詢?

DynamoDB 為我們提供了兩種獲取數據的方式: queryscan

query操作要求您指定主鍵。 scan操作允許您通過指定任何屬性來獲取項目。

因此,如果你想在不使用主鍵的情況下從 DynamoDB 中獲取數據,你可以使用scan 操作 但是,使用scan時要小心。 從文檔:

Scan 操作通過訪問表或二級索引中的每個項目返回一個或多個項目和項目屬性。

如果不小心使用, scan操作可能會非常低效。 如果此訪問模式在您的應用程序中很常見,您可能希望重新組織數據,使tagName成為主鍵的一部分。 這將允許您使用query操作來獲取您需要的數據。

暫無
暫無

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

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