ホームページ  >  記事  >  バックエンド開発  >  減算集計 Mongo ドキュメント Golang

減算集計 Mongo ドキュメント Golang

WBOY
WBOY転載
2024-02-08 21:05:361116ブラウズ

减法聚合 Mongo 文档 Golang

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/8ddef92dce6c3f37ab15adc625811345[電子メールで保護された保護] 5db79b134e9f6b82c0b36e0489ee08edmongo:5.0.8 の場合、表示されるエラーは次のとおりです:

リーリー

ps 2:

わからない場合は、次のように bsond 変数を直接作成できます:

リーリー

ps3

表示されたコードには構文エラーがあります (jsoninput の短い宣言の最後に余分な ))。これを修正した後は、質問に示されているエラーは発生しないと思います。エラーは別の jsoninput 値に関するものだと思います。

以上が減算集計 Mongo ドキュメント Golangの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。