簡體   English   中英

在 dynamodb 上進行刪除、更新、插入和獲取操作嵌套 json 數據結構

[英]Making delete, update, insert and get operations nested json data structure on dynamodb

我的數據結構如下: 在此處輸入圖像描述

我想更新,刪除房間列表中帶有 roomId 的房間。 我應該向 roomId 添加二級索引嗎? 應該如何更新和刪除查詢? 我也想用 roomId 獲取房間信息。

對於移除房間,代碼結構可以是這樣的:

  const roomItem = {
    TableName: 'Home',
    Key: {
      homeId: homeId
    },
    IndexName: 'roomId-index',
    ConditionExpression: 'rooms.roomId = :roomId',
    ExpressionAttributeValues: {
      ':roomId': roomId
    }
  };
  await dynamodb.delete(roomItem).promise();

在非頂級屬性上創建二級索引

您不能在作為嵌套屬性的rooms.roomId上創建Secondary Index

請參閱https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/SecondaryIndexes.html

索引鍵架構中的每個屬性都必須是字符串、數字或二進制類型的頂級屬性。

--

為了能夠通過roomId進行檢索,您可以選擇:

  • 使用Scan ,或
  • 重新設計您的架構以使roomId成為新Table中表的Key的 / 一部分,以便您可以使用實現毫秒Query檢索

例子

Hash Key (House Id)  | Range Key (Room Id)
---------------------+---------------------
55555555             | 1
---------------------+---------------------
55555555             | 2

暫無
暫無

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

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