php エディター Zimo は今日、減法集計 Mongo ドキュメント Golang を紹介します。 Golang 開発では、データベースとして MongoDB を使用することが非常に一般的な選択です。 MongoDB は、ドキュメントに対してさまざまな複雑な集計操作を実行できる強力な集計フレームワークを提供します。このうち、減法集計は、ドキュメント内の特定のフィールドの差を計算するために使用できる特別な集計操作です。この記事では、減法集計を使用して Golang で Mongo ドキュメントを処理する方法を詳しく紹介し、開発者がこの関数をよりよく理解し、適用できるようにします。
このドキュメントはmongoにあります
リーリーこの golang コードを使用して「test_value」を 1 つデクリメントしたいです
リーリーこのエラーが発生します
"ドキュメントを mongo に集約できません。プリミティブ型を bson ドキュメントにマーシャリングできません: writerarray は要素または値の場合のみ配列に書き込めますが、トップレベルにある"
私は何を間違えたのでしょうか?
{ "_id": { "$oid": "649d3d688a1f30bf82e77342" }, "test_value": { "$numberlong": "10" } }
ここでの "test_value"
はリテラルであることに注意してください。この式は、文字列 test_value
から数値 1 を減算することを意味しますが、これは無効であり、必要なものではありません。代わりにフィールド パスを引用したいとします。したがって、プレフィックス $
を付ける必要があります (集計式 を参照)。修正されたコードは次のとおりです:
ps1:
他の人が問題を調査しやすくするために、将来的に再現可能な最小限の実行可能ファイルを提供してください。例:
リーリーそしてデータ収集を初期化します:
リーリー(mongodbシェルで実行)
パッケージを使用するgo.mongodb.org/<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="5e3331303931733a2c37283b2c1e286f706f6c706e">[電子メールで保護された保護] </a>
と mongo:5.0.8
の場合、表示されるエラーは次のとおりです:
ps 2:
わからない場合は、次のように bsond
変数を直接作成できます:
ps3:
表示されたコードには構文エラーがあります (jsoninput
の短い宣言の最後に余分な )
)。これを修正した後は、質問に示されているエラーは発生しないと思います。エラーは別の jsoninput
値に関するものだと思います。
以上が減算集計 Mongo ドキュメント Golangの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。