ホームページ >バックエンド開発 >Golang >Go mgo クエリが空のオブジェクトを返すのはなぜですか?

Go mgo クエリが空のオブジェクトを返すのはなぜですか?

DDD
DDDオリジナル
2024-12-17 08:36:25712ブラウズ

Why are my Go mgo queries returning empty objects?

Go mgo: 空のオブジェクトの取得

Go mgo パッケージを使用して MongoDB インスタンスからオブジェクトを取得しようとすると、空のオブジェクトが発生する可能性があります。結果オブジェクト。この問題は、MongoDB ドキュメントを表すために使用される構造体でのフィールド処理が不適切であることが原因である可能性があります。

コード サンプルでは、​​次のフィールドを持つユーザー構造体を定義します。

type users struct {
    user string `bson:"user" json:"user"`
    data string
}

ただし、フィールドはエクスポートされません (最初の文字は大文字)。したがって、mgo パッケージは、MongoDB によるシリアル化および逆シリアル化中にそれらを無視します。これを修正するには、フィールドをエクスポートします。

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

フィールドをエクスポートすると (最初の文字は大文字を使用)、mgo パッケージはフィールドを認識し、対応する MongoDB フィールドにマップできるようになります。デフォルトでは、構造体のフィールド名がマッピングに使用されることに注意してください。カスタム マッピングを指定するには、タグ (例の bson や json など) を使用します。

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

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