次に、一般的なマップを使用できます。
var result map[string]interface{}
err := collection.Find(query).One(&result)
bson.M
を使用している人を見つけることができます 、これも同じ基になるタイプのマップです。 bson.M
について特別なことは何もありません 、 けれど。これは、地図の短くて便利な名前です。独自の便利な名前を作成することも、上記の例のようにプレーンマップを使用することもできます。
スキーマが定義されていないドキュメントにアクセスするもう1つの方法は、bson.D
を使用することです。 上記のマップタイプの代わりに。 bson.D
ドキュメント内の要素の順序が関連している場合、または操作のオーバーヘッドをわずかに減らしたい場合に最も役立ちます(マップはその性質上、処理に少し費用がかかります)。 bson.D
typeは、キーと値のペアを持つ構造体値のスライスです。 bson.M
とは異なり 、bson.D
特別で、mgo/bsonパッケージによって内部的に処理されます。