AWS Go SDK を使用して DynamoDB の単一フィールドのみを更新する方法
誰かが私が苦労しているこの問題に光を当ててくれることを願っています。
ダイナモにこのテーブルがあります。これを people
と呼びます。このテーブルには、パーティション キーとして id
という属性、name
があります。 姓
とステータス
。
単一のプロパティだけを更新するか、ID のすべてのプロパティを保存できるようにしたいと考えています。
さて、これが私のやり方です。次の構造を作成しました:
サーバーからのリクエストは単に個人の姓を更新するだけなので、リクエストの本文は次のようになります:
リーリーリクエストを構造体にバインドした後、dynamo に送信されるオブジェクトは次のようになります:
リーリーご覧のとおり、ダイナモに書き込むときは、1 つのプロパティのみを更新し、残りの null/null プロパティは無視する必要があります。
これを行うために記述されたコードは次のように要約できます:
リーリー現在、更新には問題はありませんが、問題は、firstname
と status
に null 値も渡されていることです。ドキュメントを読んでみましたが、まだ少し混乱しています。 Java SDK では、update_skip_null_attributes
というフラグを渡すことができます。これにより、これらの null 値をスキップし、データのある値のみを更新できるようになります。 go でこれに相当するものが何かはわかりません。ヘルプ/ガイダンスがあれば幸いです。
更新:
次のモデルを使用してみてください:
リーリー@jarmod と @fedonev のアドバイスに従ってください。論理的に、そしてドキュメントを使用すると、これが機能する理由は理解できますが、残念ながら機能しません
SDK を v1 から v2 に切り替えて、更新することで解決するかどうかを確認することにしましたが、また同じ苦境に陥っています。これは私の更新機能がどのように見えるかです。
リーリー最終的に、更新したい ID で JSON ペイロードをクエリし、クエリで実行したい内容の違いに基づいて更新するクエリと作成関数を作成することで、問題を解決しました。空のフィールドは置き換えられます。クエリ結果による。これまでのところ、問題は解決しましたが、意図した機能で更新する方法をまだ疑問に思っています。
正解
@jarmodさんのコメントにあるように、dynamodbav:",omitempty"
タグをマーシャリング構造に適用する場合はスキップしてください。ゼロ値フィールド :
[編集: 使用法を追加] marshalmap
ラベルを考慮して、ゼロ値フィールドは無視されるようになりました。マップを反復処理して更新式を作成します:
op に示すように、式を構築し、その出力を updateitem
に渡します。
以上がAWS Go SDK を使用して DynamoDB の単一フィールドのみを更新する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









OpenSSLは、安全な通信で広く使用されているオープンソースライブラリとして、暗号化アルゴリズム、キー、証明書管理機能を提供します。ただし、その歴史的バージョンにはいくつかの既知のセキュリティの脆弱性があり、その一部は非常に有害です。この記事では、Debian SystemsのOpenSSLの共通の脆弱性と対応測定に焦点を当てます。 Debianopensslの既知の脆弱性:OpenSSLは、次のようないくつかの深刻な脆弱性を経験しています。攻撃者は、この脆弱性を、暗号化キーなどを含む、サーバー上の不正な読み取りの敏感な情報に使用できます。

Go Crawler Collyのキュースレッドの問題は、Go言語でColly Crawler Libraryを使用する問題を調査します。 �...

バックエンド学習パス:フロントエンドからバックエンドへの探査の旅は、フロントエンド開発から変わるバックエンド初心者として、すでにNodeJSの基盤を持っています...

Go言語での文字列印刷の違い:printlnとstring()関数を使用する効果の違いはGOにあります...

この記事では、Debianシステムの下でPostgreSQLデータベースを監視するためのさまざまな方法とツールを紹介し、データベースのパフォーマンス監視を完全に把握するのに役立ちます。 1. PostgreSQLを使用して監視を監視するビューPostgreSQL自体は、データベースアクティビティを監視するための複数のビューを提供します。 PG_STAT_REPLICATION:特にストリームレプリケーションクラスターに適した複製ステータスを監視します。 PG_STAT_DATABASE:データベースサイズ、トランザクションコミット/ロールバック時間、その他のキーインジケーターなどのデータベース統計を提供します。 2。ログ分析ツールPGBADGを使用します

redisstreamを使用してGo言語でメッセージキューを実装する問題は、GO言語とRedisを使用することです...

Beegoormフレームワークでは、モデルに関連付けられているデータベースを指定する方法は?多くのBEEGOプロジェクトでは、複数のデータベースを同時に操作する必要があります。 Beegoを使用する場合...
