ホームページ >バックエンド開発 >Golang >Go で MongoDB にクエリを実行すると空のオブジェクトが返されるのはなぜですか?

Go で MongoDB にクエリを実行すると空のオブジェクトが返されるのはなぜですか?

DDD
DDDオリジナル
2024-12-11 18:52:11534ブラウズ

Why Am I Getting Empty Objects When Querying MongoDB with Go?

Go を使用した MongoDB クエリの空のオブジェクト

Go API 開発を学習しているときに、mgo パッケージを使用して MongoDB からデータを取得するときに問題が発生する場合があります。そのような問題の 1 つは、クエリの実行時に空のオブジェクトを取得することです。これを解決するには、Go 構造体での BSON タグと JSON タグの使用を理解することが重要です。

提供されたコードでは、ユーザー構造体のフィールドがエクスポートまたはタグ付けされていないために問題が発生します。したがって、これらは mgo パッケージによって無視されます。これを修正するには、

type Users struct {
    User string `bson:"user" json:"user"`
    Data string `bson:"data" json:"data"` 
}

のように最初の文字を大文字にしてフィールドをエクスポートする必要があります。デフォルトでは、構造体の値を MongoDB との間で変換するときにフィールド名が想定されます。ただし、タグを使用すると、シリアル化および取得のためにフィールドを特定の名前にマップできます。この場合、BSON フィールド名と JSON フィールド名に一致するタグを定義しました。

これらの変更後、コードは MongoDB コレクションから空ではないオブジェクトを正常に取得できるようになります。印刷行には、コレクション内の正しいユーザー データとメッセージ数が表示されます。

以上がGo で MongoDB にクエリを実行すると空のオブジェクトが返されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。