Docs Menu
Docs Home
/ / /
Go Driver
/

構造タグを使用する

Go ドライバーが Go 構造体を BSONに変換する方法を指定するには、構造体タグを使用します。

Tip

この例の実行方法については、「 使用例」をお読みください。

次のコードでは、 BlogPost型の構造体を宣言します。 この構造体には、 WordCountフィールドを BSON フィールド名word_countにマッピングする構造体タグが含まれています。 デフォルトでは、ドライバーは他のフィールドを構造体フィールド名の小文字としてマーシャリングします。

type BlogPost struct {
Title string
Author string
WordCount int `bson:"word_count"`
LastUpdated time.Time
Tags []string
}

次の例では、 BlogPostインスタンスを作成し、それをpostsコレクションに挿入します。 挿入操作中に、ドライバーは struct タグを解釈して、 WordCount構造体フィールドをword_countとしてマーシャリングします。

Tip

この例を実行する方法については、「使用例」をお読みください。

coll := client.Database("sample_training").Collection("posts")
post := BlogPost{
Title: "Annuals vs. Perennials?",
Author: "Sam Lee",
WordCount: 682,
LastUpdated: time.Now(),
Tags: []string{"seasons", "gardening", "flower"},
}
// Inserts a document describing a blog post into the collection
_, err = coll.InsertOne(context.TODO(), post)
if err != nil {
panic(err)
}

完全に実行可能な例を表示します。

完全な例を実行すると、 postsコレクションに次のドキュメントが見つかります。

{
"_id" : ObjectId("..."),
"title" : "Annuals vs. Perennials?",
"author" : "Sam Lee",
"word_count" : 682,
"lastupdated": ...,
"tags" : ["seasons", "gardening", "flower"]
}

ドキュメントの検索方法の例については、「ドキュメントを検索する」を参照してください。

構造体タグの使用、BSON への変換や BSON からの変換、潜在的なエラーの処理の詳細については、「 BSON との連携 」を参照してください。

戻る

コマンドの実行