![](/img/trans.png)
[英]The number of conditions on the keys is invalid when using partition key only in 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 為我們提供了兩種獲取數據的方式: query
和scan
。
query
操作要求您指定主鍵。 scan
操作允許您通過指定任何屬性來獲取項目。
因此,如果你想在不使用主鍵的情況下從 DynamoDB 中獲取數據,你可以使用scan 操作。 但是,使用scan
時要小心。 從文檔:
Scan 操作通過訪問表或二級索引中的每個項目返回一個或多個項目和項目屬性。
如果不小心使用, scan
操作可能會非常低效。 如果此訪問模式在您的應用程序中很常見,您可能希望重新組織數據,使tagName
成為主鍵的一部分。 這將允許您使用query
操作來獲取您需要的數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.