[解決済み] DynamoDBで一括削除するにはどうしたらいいですか?
2022-02-04 22:11:19
質問
提供されたキー要素がスキーマと一致しない」というエラーが発生します。
uuid
は私のプライマリパーティションキーです。また、主ソートキーは
version
. を使うことができると考えました。
batchWrite
(
ドキュメント
を含むすべてのアイテムを削除するには、同じ
uuid
.
私のES6コードは以下の通りです。
delete(uuid) {
const promise = new Promise();
const params = {
RequestItems: {
[this.TABLE]: [
{
DeleteRequest: {
Key: { uuid: uuid }
}
}
]
}
};
// this._client references the DocumentClient
this._client.batchWrite(params, function(err, data) {
if (err) {
// this gets hit with error
console.log(err);
return promise.reject(err);
}
console.log(result);
return promise.resolve(result);
});
return promise;
}
なぜプライマリであるキーでエラーになるのかよくわかりません。キーでないもので検索するときに他のインデックスが必要だという書き込みを見たことがあります。しかし、今回のケースはそうではないと思っています。
どのように解決するのですか?
以下は、書き込み削除リクエストの一括処理サンプルです。このコードはテスト済みで、問題なく動作しています。このコードをあなたの要件に合わせて変更すれば、動作するはずです。
テーブルの定義:-)
バッグ - テーブル名
bag - ハッシュキー
Bag'テーブルのパーティションキーがない
バッチ書き込みコード:-)
var AWS = require("aws-sdk");
AWS.config.update({
region : "us-west-2",
endpoint : "http://localhost:8000"
});
var documentclient = new AWS.DynamoDB.DocumentClient();
var itemsArray = [];
var item1 = {
DeleteRequest : {
Key : {
'bag' : 'b1'
}
}
};
itemsArray.push(item1);
var item2 = {
DeleteRequest : {
Key : {
'bag' : 'b2'
}
}
};
itemsArray.push(item2);
var params = {
RequestItems : {
'Bag' : itemsArray
}
};
documentclient.batchWrite(params, function(err, data) {
if (err) {
console.log('Batch delete unsuccessful ...');
console.log(err, err.stack); // an error occurred
} else {
console.log('Batch delete successful ...');
console.log(data); // successful response
}
});
出力:-
Batch delete successful ...
{ UnprocessedItems: {} }
関連
-
[解決済み] E: npm パッケージを見つけることができません。
-
[解決済み] エラーです。Ionic使用中にモジュール '../lib/utils/unsupported.js' が見つかりません。
-
[解決済み] Node.jsのプログラムにコマンドライン引数を渡すにはどうしたらいいですか?
-
[解決済み] package.jsonの各依存関係を最新バージョンに更新する方法は?
-
[解決済み] forEachループでasync/awaitを使用する
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] Node.jsで終了する方法
-
[解決済み] Node.jsアプリケーションをデバッグするにはどうすればよいですか?
-
[解決済み] Node.jsのmodule.exportsの目的と使い方を教えてください。
-
[解決済み] Node.jsで現在のスクリプトのパスを取得するにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】AWS Lambdaでnodejsの「ref」モジュールを使用すると「invalid ELF header」と表示される件
-
[解決済み】モジュール 'internal/util/types' が見つかりません。
-
[解決済み】ExpressJSとMeteorJSの比較【終了しました
-
[解決済み] 非推奨パッケージに関するNPM警告メッセージ
-
[解決済み】MongoDBのデータ/DBが見つからない
-
[解決済み】Nodejsの解決方法:Error: ENOENT: そのようなファイルまたはディレクトリがありません
-
[解決済み】モジュール '@babel/core' が見つかりません。
-
[解決済み】passport.js passport.initialize() ミドルウェアが使用されていません。
-
[解決済み】POSTできない/expressを使用するとエラーが発生する
-
[解決済み] S3 Bucket に何かを送信しようとすると、AWS Missing credentials が表示される (Node.js)