誰かが私が苦労しているこの問題に光を当ててくれることを願っています。
ダイナモにこのテーブルがあります。これを 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 サイトの他の関連記事を参照してください。

GolangとPythonの主な違いは、並行性モデル、タイプシステム、パフォーマンス、実行速度です。 1. GolangはCSPモデルを使用します。これは、同時タスクの高いタスクに適しています。 Pythonは、I/O集約型タスクに適したマルチスレッドとGILに依存しています。 2。Golangは静的なタイプで、Pythonは動的なタイプです。 3.ゴーランコンパイルされた言語実行速度は高速であり、Python解釈言語開発は高速です。

Golangは通常Cよりも遅くなりますが、Golangはプログラミングと開発効率の同時により多くの利点があります。1)Golangのゴミ収集と並行性モデルにより、同時性の高いシナリオではうまく機能します。 2)Cは、手動のメモリ管理とハードウェアの最適化により、より高いパフォーマンスを取得しますが、開発の複雑さが高くなります。

GolangはクラウドコンピューティングとDevOpsで広く使用されており、その利点はシンプルさ、効率性、および同時プログラミング機能にあります。 1)クラウドコンピューティングでは、GolangはGoroutineおよびチャネルメカニズムを介して同時リクエストを効率的に処理します。 2)DevOpsでは、Golangの高速コンピレーションとクロスプラットフォーム機能により、自動化ツールの最初の選択肢になります。

GolangとCにはそれぞれ、パフォーマンス効率に独自の利点があります。 1)GolangはGoroutineおよびGarbage Collectionを通じて効率を向上させますが、一時停止時間を導入する場合があります。 2)Cは、手動のメモリ管理と最適化を通じて高性能を実現しますが、開発者はメモリリークやその他の問題に対処する必要があります。選択するときは、プロジェクトの要件とチームテクノロジースタックを考慮する必要があります。

Golangは高い並行性タスクにより適していますが、Pythonには柔軟性がより多くの利点があります。 1.Golangは、GoroutineとChannelを介して並行性を効率的に処理します。 2。Pythonは、GILの影響を受けるが、複数の並行性メソッドを提供するスレッドとAsyncioに依存しています。選択は、特定のニーズに基づいている必要があります。

GolangとCのパフォーマンスの違いは、主にメモリ管理、コンピレーションの最適化、ランタイム効率に反映されています。 1)Golangのゴミ収集メカニズムは便利ですが、パフォーマンスに影響を与える可能性があります。

seetgolangforhighperformance andconcurrency、ithyforbackendservicesandnetworkプログラミング、selectthonforrapiddevelopment、datascience、andmachinelearningduetoistsversitydextentextensextensentensiveLibraries。

GolangとPythonにはそれぞれ独自の利点があります。Golangは高性能と同時プログラミングに適していますが、PythonはデータサイエンスとWeb開発に適しています。 Golangは同時性モデルと効率的なパフォーマンスで知られていますが、Pythonは簡潔な構文とリッチライブラリエコシステムで知られています。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

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

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール
