Golang の Mgo で空のオブジェクトを回避する方法
Golang の mgo パッケージを使用して MongoDB と対話する場合、 BSON タグと JSON タグ。適切なタグ注釈を使用しないと、データを取得すると空のオブジェクトが返される可能性があります。
提供されたコード スニペットは、MongoDB に特定の「user」フィールドを持つレコードをクエリしようとします。ただし、構造体フィールドがエクスポートされないというよくある見落としにより、返されるレコードは空になります。この問題を解決するには、ユーザーの構造体を変更して User フィールドと Data フィールドをエクスポートします。
type users struct { User string `bson:"user" json:"user"` Data string `bson:"data" json:"data"` }
構造体フィールドをエクスポートすることで、データの変換および取得中にこれらのフィールド名を使用するように mgo パッケージに指示します。このエクスポートがないと、パッケージはフィールドを無視します。
さらに、BSON タグと JSON タグの役割を理解することが不可欠です。 MongoDB では、データは BSON (Binary JSON) 形式で保存されます。ただし、Go はデータ構造を表すために JSON を使用します。 BSON タグと JSON タグを使用すると、Go フィールドを対応する BSON タグにどのようにマップするかを指定できます。
提供されたコードでは、User タグと Data タグは、Go 構造体フィールドを「ユーザー」と「ユーザー」にマップする必要があることを指定しています。それぞれBSONの「data」フィールド。これらのタグを使用すると、データが正しい形式で保存および取得されるようになります。
これらのガイドラインに従うことで、空のオブジェクトの取得を効果的に回避し、mgo を使用して Go と MongoDB の間でデータを適切に処理できるようになります。パッケージ。
以上がGolang mgo クエリが空のオブジェクトを返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。