次に、一般的なマップを使用できます。
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パッケージによって内部的に処理されます。