我想爲尚未具有特定值並設置了附加標誌的域中的所有項目設置值。查詢爲Amazon SimpleDB中的所有項目設置值
基本上對我的所有項目,
SET值a到100,如果VALUEB是0
但我感到困惑的是如何實現這一目標。到目前爲止,香港專業教育學院已通過只使用一個PutRequest這樣設置各個項目的價值:
ArrayList<ReplaceableAttribute> newAttributes = new ArrayList<ReplaceableAttribute>();
newAttributes.add(new ReplaceableAttribute("ValueA",Integer.toString(100), true));
PutAttributesRequest newRequest = new PutAttributesRequest();
newRequest.setDomainName(usersDomain);
newRequest.setItemName(userID);
newRequest.setAttributes(newAttributes);
sdb.putAttributes(newRequest);
這適用於單個項目,並要求我先拿到項目名稱(用戶ID)。這是否意味着我必須「列出」我所有的物品,並且一個一個地做這件事? 我想,因爲我有大約19000+項目,我還必須使用令牌在2000年限制之後獲得下一組權限?
沒有更高效的方法嗎?目前這可能並不那麼沉重,但我預計最終會有超過10萬件物品。
PD:我正在使用適用於Eclipse的AWS Java SDK。
哦,謝謝你的迴應,我實際上購買了SDB瀏覽器,並用它來設置手動屬性。但是我有點擔心我的數據庫會發生什麼事情,因爲我報告了一個錯誤,那就是保存到csv的地方完全忽略了多值屬性。但在這種情況下,我認爲它會好起來的,但它不會刪除其他屬性嗎?只替換ValueA屬性行? – Pochi
@Chiquis是的。它將'NOT'刪除其他屬性,它將'僅'替換'VauleA'屬性行。我建議,如果域中的數據非常重要,請在虛擬域上嘗試。供參考:SDBExplorer有兩個選項,總是在上傳之前詢問,即「添加」或「替換」。如果您選擇「添加」,它會爲屬性添加新值而不替換舊值,如果選擇「替換」,它將用新值替換舊值。新的SDBExplorer版本將很快發佈,修復了多值屬性。謝謝。 –