2017-03-24 47 views
0
Record1: [{ 
"business_id": 2, 
"forms": { 
    "f522": { 
     "id": "f522", 
     "is_deleted": 0, 
     "title": "Form 1" 
     }, 
    "f8b6": { 
     "id": "f8b6", 
     "is_deleted": 0, 
     "title": "Form 2" 
     }, 
    "fw56": { 
     "id": "fw56", 
     "is_deleted": 0, 
     "title": "Form 3" 
     } 
} 
}] 

Record2: [{ 
"business_id": 3, 
"forms": { 
    "f788": { 
     "id": "f788", 
     "is_deleted": 0, 
     "title": "Form 11" 
    }, 
    "f6yy": { 
     "id": "f6yy", 
     "is_deleted": 0, 
     "title": "Form 12" 
    }, 
    "f00i": { 
     "id": "f00i", 
     "is_deleted": 0, 
     "title": "Form 13" 
    } 
} 
}] 

Record3: [{ 
"business_id": 4, 
"forms": { 
    "f839": { 
     "id": "f839", 
     "is_deleted": 0, 
     "title": "Form 21" 
    }, 
    "f1bc": { 
     "id": "f1bc", 
     "is_deleted": 0, 
     "title": "Form 22" 
    }, 
    "f6ac": { 
     "id": "f6ac", 
     "is_deleted": 0, 
     "title": "Form 23" 
    } 
} 
}] 

我有3個記錄存儲在dynamoDB表中。哈希鍵是business_id。表單對象是具有子對象(id,is_deleted,title)的父對象。我不知道business_id的價值。但我只有id值「f6yy」。我想更新is_deleted爲1的id(值是f6yy)。請提出整個查詢。可以在dynamoDB PHP中更新沒有哈希鍵或範圍鍵值的項目?

+0

我有3個記錄存儲在dynamoDB表中。哈希鍵是business_id。表單對象是具有子對象(id,is_deleted,title)的父對象。我不知道business_id的價值。但我只有id值「f6yy」。我想更新is_deleted爲1的id(值是f6yy)。請提出整個查詢。 –

+0

無法使用散列鍵和排序鍵更新項目 – notionquest

+0

謝謝@notionquest的答案。對於上述相同的數據,我還有一個問題。 我沒有範圍鍵。我只有哈克鍵然後纔有可能更新dynamoDB中的項目? –

回答

0

爲了從DynamoDB表中刪除項目,需要分區鍵和排序鍵。

對於主鍵,您必須提供所有屬性。例如,對於 示例,使用簡單的主鍵,您只需爲分區鍵提供值 。對於複合主鍵,您必須爲分區鍵和排序鍵提供 值。

0

沒有這樣的查詢,因爲如果沒有爲表中的條目提供密鑰(business_id),那麼AWS在邏輯上無法識別要修改的條目。

因此,你需要更改您的模式,並根據您的查詢,設計它還是分解表到多個表所以數據庫會像

table 1- business_id form_id(ex. f6yy etc) 
table 2- form_id  form_object(ex. {"is_deleted": 0,"title": "Form 1"}) 

現在更新可以在表2中可以做了f6yy。

相關問題